Re: Часть запросов с анамольно большим $request time

Maxim Dounin mdounin на mdounin.ru
Ср Май 4 17:21:36 UTC 2016


Hello!

On Wed, May 04, 2016 at 11:58:17AM -0400, malaf wrote:

> Добрый день.
> 
> Есть такая конфигурация:
> - фронтенд c nginx
> - бэкенды с php
> - для динамических запросов настроено php fastcgi между nginx и php-fpm
> через tcp порт с кешированием ответов
> - log_format выглядит примерно так- '$remote_addr # $upstream_addr #
> $request # $status # $uri # $upstream_response_time # $upstream_cache_status
> # $request_time
> - проект высоконагруженный
> 
> Столкнулся с такой проблемой, судя по логам, то часть запросов имеет
> существенно большее значение  $request_time чем $upstream_response_time,
> может быть больше как на 1 секунду так и 2, 5 и даже более 30.  Особенно это
> заметно на страницах из кеша, у которых upstream_cache_status = HIT,
> upstream_response_time = 0 и c большим request_time, хотя для подавляющего
> большинства этот параметр имеет значение 0-0.01s 
> 
> Влияние "медленных клиентов" на значение $request_time вроде отсёк, проверив
> лог после обращения к странице в кеше с помощью curl --limit-rate 20K
> example.com > /dev/null, время ответа было 4 секунды, в лог request_time
> записался со значение 0.

Использование "curl --limit-rate" для эмуляции медленных клиентов - 
более или менее работает только в том случае, если размер ответа 
превышает суммарный размер всех буферов в цепочке.  Если в 
$request_time записалось значение 0 - это хороший признак, что 
ответ полностью влез в буфера, и с точки зрения nginx'а клиент - 
быстрее не бывает.

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru