Re: excess в ngx_http_limit_req_module
Maxim Dounin
mdounin на mdounin.ru
Пн Апр 16 09:14:23 UTC 2012
Hello!
On Mon, Apr 16, 2012 at 05:47:22AM +0000, Кокорин Иван Владимирович wrote:
> Добрый день.
> Использую ngx_http_limit_req_module. В error_log появляются
> сообщения вида:
> 2012/04/16 11:26:51 [warn] 51234#0: *2960920 delaying request, excess: 0.530, by zone "ib_soap", client: 172.16.3.204, server: ***, request: "POST /InformbureauApi.php HTTP/1.1", host: "***"
>
> Если я правильно понимаю, это означает, что запрос был задержан
> на 0.530 сек и это время в access_log должно отразиться в виде
> увеличения $request_time относительно $upstream_response_time.
>
> В access_log этому запросу соответствует запись
> 16/Apr/2012:11:26:51 +0600 *** 0.090 200 [ 127.0.0.1:10010 200 0.037 ][ 172.16.3.204 POST /InformbureauApi.php HTTP/1.1 756 ][ "-" "PHP-SOAP/5.2.9" "-" ]
>
> Разница между $request_time (0.090) и $upstream_response_time
> (0.036) равна 0.053 сек. Т.е. фактическая разница в 10 раз
> меньше, чем значение excess. То же самое и с другими запросами.
> Я что-то неправильно понимаю или значение excess в лог
> записывается с ошибкой?
Excess - это количество запросов, сейчас посчитанное в
соответствующем bucket'е. Задержка будет на время (excess /
rate), обеспечивающей поступление запросов со скоростью, не
превышающей заданную.
Т.е. если у вас rate=10r/s, то задержка в 0.053s - это правильно.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru