Re: nginx status: reading 100-200, writing 1-5. Как побороть?
mikhal123
nginx-forum at nginx.us
Wed Sep 19 17:45:49 UTC 2012
> Они в любом случае будут доходить, так он работает.
>
> Я понял в чем причина. Вы выставили client_header_timeout в 3 секунды,
> а
> deferred accept берет свой таймаут из этой же директивы.
>
> В итоге, у вас 3 секунды соединение проводит в ядре, а потом кончается
> таймаут
> deferred accept-а и соединение передается nginx-у, и nginx ждет ещё
> три секунды
> до таймаута.
>
> Выставлять client_header_timeout в столь малое значение вообще была
> очень плохая
> идея в любом случае. Так жестко играясь с таймаутами (которые и так по
> дефолту
> имеют более-менее оптимальные значения) вы более навредите своим
> посетителям,
> чем получите какую-то выгоду. 100 соединений nginx способен держать
> даже на
> кофеварке, это не та цифра по которой надо переживать.
>
> Рекомендую спилить client_header_timeout из конфига, 60 секунд по
> дефолту скорее
> всего будет достаточно чтобы Хром сам отвалился проведя всё время в
> ядре, и всё,
> что осталось бы nginx - это отработать закрытие соединения.
Ну без знания о таких деталях работы nginx сложно догадаться, что уменьшение
client_header_timeout приведет к таким проблемам с хромом. Да и, как
вспоминается, в инете присутствуют руководства где рекомендуется этот
таймаут ставить небольшим. Типа защита от ддоса :)
Но теперь все понятно, настройки
client_header_timeout 15;
listen 80 default_server backlog=1024 sndbuf=512k deferred;
практически полностью устраняют проблему
Active connections: 2825
server accepts handled requests
507907 507907 1094551
Reading: 11 Writing: 3 Waiting: 2811
Благодарю за помощь
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,230818,230883#msg-230883
Подробная информация о списке рассылки nginx-ru