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