nginx перестает отвечать нагружая IO на 100%

iprok nginx-forum at nginx.us
Wed Jan 28 19:47:05 UTC 2015


Есть сервер с несколькими десятками сайтов на Debian Wheezy amd64. nginx
1.6.2 отсюда
deb http://nginx.org/packages/debian/ wheezy nginx

Симптоматика следующая. Сначала приходит письмо от заббикса о превышение
порога IO:
CPU iowait time (hostname:system.cpu.util[,iowait]): 24.95 %

Через несколько секунд перестают отвечать все сайты. nginx становится
недоступен. Смотрю iotop, все процессы nginx выглядят так (disk read, disk
write, swap in, io):

0.00 B/s    0.00 B/s  0.00 % 99.99 % nginx: worker process

Честно говоря совершенно загадочная для меня ситуация, чтоб IO было большое,
но ни записи ни чтения не происходило. Что это может быть? В error.log
ничего за этот период нет. Вообще в логах не вижу ничего криминального.
Места везде с запасом. 
По памяти:
free -m
             total       used       free     shared    buffers     cached
Mem:          8002       7869        132          0        476       6001
-/+ buffers/cache:       1392       6610
Swap:         8191          0       8191

nginx.conf:

user nginx;
worker_processes  4;
worker_rlimit_nofile  200000;

error_log /var/log/nginx/error.log  error;

events {
    worker_connections  100000;
#    use epoll;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    server_names_hash_max_size 2048;
        server_names_hash_bucket_size 64;

        server_tokens off;

        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
            
    proxy_cache_path /var/cache/nginx   keys_zone=one:50m;
    limit_req_zone  $binary_remote_addr  zone=agency:1m   rate=20r/m;
    limit_req_zone  $binary_remote_addr  zone=a7:1m   rate=3r/s;
    limit_req_zone  $binary_remote_addr  zone=default:1m   rate=10r/s;
    limit_req_zone  $binary_remote_addr  zone=global:10m   rate=500r/s;
    limit_req zone=global burst=500; 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request"
'
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent"';
    log_format  proxy '$http_host == $remote_addr - $remote_user
[$time_local] "$request"'
                        '$status $body_bytes_sent "$http_referer" ';
                        
    log_format global '$http_host == $remote_addr - $remote_user
[$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer"
"$http_user_agent" ';
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   60;
    gzip                on;
        gzip_types text/css application/x-javascript;
        gzip_vary on;

    reset_timedout_connection  on;

    proxy_redirect     off;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header   Connection       close;
    proxy_set_header   Range "";
    
    proxy_pass_header Content-Type;
    proxy_pass_header Last-Modified;
    proxy_pass_header Expires;

    client_max_body_size       50m;
    large_client_header_buffers  16 16k;
    client_body_buffer_size    256k;

    proxy_connect_timeout      90;
    proxy_send_timeout         90;
    proxy_read_timeout         300;

             
    proxy_buffer_size          64k;
    proxy_buffers              16 64k;
    proxy_busy_buffers_size    64k;
    proxy_temp_file_write_size 64k;

    access_log /var/log/nginx/access.log global buffer=8k;


    server {
        listen       <serverip>:80 default_server;
        return 444;
    }
        server {
                listen 127.0.0.1:80 default_server;
                location /nginx_status {
                    stub_status on;
                    access_log off;
                }
        }
        include sites-enabled/*;  
        include deploy-enabled/*;  
}

В настройках виртуальных хостов никаких особенных настроек нет: location,
root, access_log, error_log, proxy_pass.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,256316,256316#msg-256316



Подробная информация о списке рассылки nginx-ru