Re: Часть запросов с анамольно большим $request time
Maxim Dounin
mdounin на mdounin.ru
Чт Май 5 13:28:54 UTC 2016
Hello!
On Thu, May 05, 2016 at 08:19:17AM -0400, malaf wrote:
> > > Влияние "медленных клиентов" на значение $request_time вроде отсёк,
> > проверив
> > > лог после обращения к странице в кеше с помощью curl --limit-rate
> > 20K
> > > example.com > /dev/null, время ответа было 4 секунды, в лог
> > request_time
> > > записался со значение 0.
> >
> > Использование "curl --limit-rate" для эмуляции медленных клиентов -
> > более или менее работает только в том случае, если размер ответа
> > превышает суммарный размер всех буферов в цепочке. Если в
> > $request_time записалось значение 0 - это хороший признак, что
> > ответ полностью влез в буфера, и с точки зрения nginx'а клиент -
> > быстрее не бывает.
> А с каких точно буферов может состоять цепочка?
Как минимум - из буфера на отправку в сокете со стороны сервера,
буфера на приём сокета со стороны клиента. В зависимости от
реализации "curl --limit-rate" - может быть ещё что-то внутри
curl'а. Ну и если используются туннели или прокси-сервера - к
этому всему добавляются буфера в них.
> Пробовал ещё играться с настройками отключая совсем fastcgi_buffering off
> или уменьшая fastcgi_buffers 2 1k при размере ответа в 100КБ, чтобы было
> нехватка выделяемого буфера, но всё равно даже близко эмулировать проблемную
> ситуацию не удается.
Всё это не имеет отношения к вопросу.
> Хочется понять какие настройки ещё попробовать донастроить, чтобы избежать
> таких задержек.
Если задержки действительно связаны с медленными клиентами - то
донастроить вряд ли получится. А если и получится (например,
подняв буфера сокета на отправку) - то большей частью это
отразится на цифрах в логах, но не на реальном времени получения
ответов клиентами.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru