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