Re: Нулевой upstream_response_time

Alexey Polyakov alexey.polyakov at gmail.com
Mon Nov 14 19:26:09 MSK 2005


То есть (2)-(1) - это время, через которое бекенд начал отвечать?
Я думал, что это время, которое бекенд затратил на передачу целиком ответа.

On 11/14/05, Igor Sysoev <is at rambler-co.ru> wrote:
> On Sun, 13 Nov 2005, Alexey Polyakov wrote:
>
> > Наблюдаю у себя такую странность:
> > сайт индексируется htdig'ом, который валит подряд много запросов к
> > страницам, бекенд - Апач/PHP.
> > Для многих из них в лог пишется 0.000 в качестве значения
> > upstream_response_time.
> > Реально же, при тесте например с помощью ab, processing time на таких
> > страницах никогда не меньше 10-12мс.
> > ОС - FreeBSD 5.4, nginx - 0.3.7.
> > С чем подобное поведение может быть связано?
>
> $upstream_response_time считается так:
>
> 1) kevent() возвращает новые события, nginx запоминает время (1) в ms.
> 2) nginx принимает соединение, читает запрос, определяет, что запрос
>    уходит к прокси, запоминает текущее время (1).
> 3) nginx соединяется с бэкендом, если это localhost, то соединение
>    устанавливается сразу же. Если нет, то факт соединения возвращается
>    через kevent().
> 4) nginx передаёт запрос и ждёт ответ.
> 5) наличие ответа возвращается через kevent(), nginx опять запоминает
>    время (2).
> 6) если овет передан полностью, то $upstream_response_time равен (2)-(1).
>
> Как видно, nginx не пытается измерить время точно.
>
>
> Игорь Сысоев
> http://sysoev.ru
>
>


--
Alexey Polyakov


More information about the nginx-ru mailing list