Re: логгирование скорости отдачи контента

Maxim Dounin mdounin на mdounin.ru
Вт Дек 28 17:56:30 MSK 2010


Hello!

On Tue, Dec 28, 2010 at 05:19:55PM +0300, Andrew Kopeyko wrote:

> Maxim Dounin wrote:
> >Hello!
> >
> >On Tue, Dec 28, 2010 at 04:02:16PM +0300, Andrew Kopeyko wrote:
> >
> >>s.ivlenkov wrote:
> >>>Добрый день!
> >>День добрый!
> >>
> >>>Можно ли в access_log записывать время
> >>>отдачи контента клиенту?
> >>>Т.е. от начала посылки хедеров, до
> >>>последнего байта в файле.
> >>>Или хотя бы от прихода первых данных
> >>>запроса от клиента, до отправки
> >>>последнего байта.
> >>Вам надо писать в лог
> >>$request_time, время обработки запроса в секундах с точностью до
> >>миллисекунд;
> >>
> >>и не забывать что это - лишь с точностью до размера буферов на
> >>отправку на вашей стороне.
> >
> >$request_time также включает в себя время получения и обработки
> >запроса, так что строго говоря для поставленной задачи подходит не
> >очень.
> 
> Тогда надо логировать ещё $upstream_response_time, и вычислять
>   $request_time - $upstream_response_time
> 
> Это и будет, примерно, требуемое "от начала посылки хедеров, до
> последнего байта в файле."

Нет.

Во-первых, $upstream_response_time не включает в себя чтение 
запроса, т.е. на эту часть погрешности не влияет вообще.  А 
во-вторых, $upstream_response_time пересекается с отправкой 
ответа клиенту (в случае proxy_buffering off - вообще полностью), 
т.е. вычитать его - неправильно, это внесёт погрешность в другую 
сторону.

Maxim Dounin



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