Re: nginx status: reading 100-200, writing 1-5. Как побороть?
Валентин Бартенев
ne at vbart.ru
Wed Sep 19 14:59:37 UTC 2012
On Wednesday 19 September 2012 18:02:40 mikhal123 wrote:
[...]
> нет там ничего похожего (error.log ведется с момента перезапуска nginx с
> новыми параметрами)
> вы предполагаете, несмотря на опцию defer в listen эти пустые соединения
> все равно доходят до nginx? это можно проверить как-то проверить? может
> протухла в nginx эта опция :)
Они в любом случае будут доходить, так он работает.
Я понял в чем причина. Вы выставили client_header_timeout в 3 секунды, а
deferred accept берет свой таймаут из этой же директивы.
В итоге, у вас 3 секунды соединение проводит в ядре, а потом кончается таймаут
deferred accept-а и соединение передается nginx-у, и nginx ждет ещё три секунды
до таймаута.
Выставлять client_header_timeout в столь малое значение вообще была очень плохая
идея в любом случае. Так жестко играясь с таймаутами (которые и так по дефолту
имеют более-менее оптимальные значения) вы более навредите своим посетителям,
чем получите какую-то выгоду. 100 соединений nginx способен держать даже на
кофеварке, это не та цифра по которой надо переживать.
Рекомендую спилить client_header_timeout из конфига, 60 секунд по дефолту скорее
всего будет достаточно чтобы Хром сам отвалился проведя всё время в ядре, и всё,
что осталось бы nginx - это отработать закрытие соединения.
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru