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