количество workerов, сonnectionов, keep-alive и прочие -- как надо?

AleXXX V. NovikoFF alexxx at alexxx.ru
Wed Aug 16 14:33:27 MSD 2006


Здравствуйте!

 root html; хм...

Wed, 16 Aug 2006 14:13:21 +0400 Вы писали:

AK> Dear All,
AK> 
AK> Помогите разобраться новичку, пожалуйста.
AK> 
AK> Связка из двух серверов, frontend+backend, два соляриса sparc 9.
AK> На бэкенде Апач 1.3.37, на фронтенде всегда был Sun Proxy Server.
AK> 
AK> Под влиянием отзывов про nginx захотелось его поставить да проверить, поставил со всеми настройками по умолчанию, как на http://blog.kovyrin.net/2006/05/18/nginx-as-reverse-proxy/, только весь контент на Апаче, nginx ничего с локального диска не отдает.
AK> 
AK> На фронтенде stub_status показывает нагрузку ~500 реквестов в секунду. Так оно примерно и есть.
AK> 
AK> Так вот, если worker_processes делать много и worker_connections много (до 32*1024), мы получаем тормоза при работе, и сообщения в лог сыпятся
AK> upstream timed out (145: Connection timed out) while connecting to upstream ...
AK> а потом вообще серии
AK> accept() failed (24: Too many open files) while accepting new connection on 0.0.0.0:80
AK> 
AK> Если же workers и connections ставить немного (от 2*128), получаем в лог
AK> 128 worker_connections is not enough while connecting to upstream
AK> и опять же сайт отдается медленно.
AK> 
AK> Что самое интересное, независимо от количества worker_processes и connections количество открытых соединений между Апачем и nginx-ом дорастает до 2000. В то время как Sun Proxy всегда держит не более 300 и не тормозит.
AK> 
AK> Эту ситуацию надо специально отлаживать, или я просто что-то неправильно накрутил?
AK> 
AK> Последний рабочий конфиг вот, я там пробовал всякие параметры менять, не помогает.
AK> 
AK> =========Beginning of the citation==============
AK> worker_processes  2;
AK> 
AK> 
AK> events {
AK>     worker_connections  128;
AK> }
AK> 
AK> 
AK> http {
AK>     include       conf/mime.types;
AK>     default_type  application/octet-stream;
AK> 
AK>     sendfile        on;
AK> 
AK>     keepalive_timeout 60;
AK>     reset_timedout_connection  on;
AK> 
AK>     tcp_nopush     on;
AK>     tcp_nodelay    on;
AK> 
AK>     gzip on;
AK>     gzip_min_length  1100;
AK>     gzip_buffers     4 8k;
AK>     gzip_types       text/plain;
AK> 
AK>     client_header_buffer_size    1k;
AK>     large_client_header_buffers  4 4k;
AK> 
AK>     output_buffers   1 32k;
AK>     postpone_output 1460;
AK> 
AK>     client_header_timeout  3m;
AK>     client_body_timeout    3m;
AK>     send_timeout           3m;
AK> 
AK>     client_body_temp_path       /usr/local/nginx/logs/client_body_temp;
AK>     proxy_temp_path             /usr/local/nginx/logs/proxy_temp_path;
AK> 
AK> 
AK>     server {
AK>         listen       80;
AK> 
AK>         location /nginx-status {
AK>             stub_status on;
AK>             access_log   off;
AK>             allow user1.domain.com;
AK>             deny all;
AK>         }
AK> 
AK>         location / {
AK>             root html;
AK>             proxy_pass http://backend;
AK>             proxy_redirect off;
AK> 
AK>             proxy_set_header   Host    $http_host;
AK>             proxy_set_header   X-Real-IP        $remote_addr;
AK> 
AK>             client_max_body_size       10m;
AK>             client_body_buffer_size    128k;
AK> 
AK>             proxy_connect_timeout      90;
AK>             proxy_send_timeout         90;
AK>             proxy_read_timeout         90;
AK> 
AK>             proxy_buffer_size          4k;
AK>             proxy_buffers              4 32k;
AK>             proxy_busy_buffers_size    64k;
AK>             proxy_temp_file_write_size 64k;
AK> 
AK> 
AK>        }
AK>     }
AK>     upstream  backend  {
AK>                 server www.domain.com;
AK>     }
AK> }
AK> =========The end of the citation================
AK> 
AK> 
AK> --
AK> With best regards, Alexei Korobkin. 
AK> 

-- 
AleXXX V. NovikoFF <alexxx at alexxx.ru>






More information about the nginx-ru mailing list