Re: оптимизация системы для nginx

calculator на land.ru calculator на land.ru
Ср Фев 17 19:40:03 MSK 2010


config:
worker_processes  8;
error_log  logs/error.log  notice;
events {
   worker_connections  16384;
}
http {
    include       conf/mime.types;
    default_type  application/octetga-stream;
    log_format  main  '$request_uri   $msec   $http_referer   $remote_addr'
                        '       $http_user_agent        $http_x_forwarded_for';
    access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout      0;
    tcp_nodelay           on;
    send_timeout          10;
    client_header_timeout 10;
    server_names_hash_bucket_size 64;
Дальше локации - ничего интересного.

sysctl:

net.core.wmem_max = 204800000
net.core.wmem_default = 204800000
net.core.rmem_max = 819200000
net.core.rmem_default = 819200000
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 100000
net.ipv4.tcp_congestion_control = htcp
net.ipv4.tcp_max_syn_backlog = 256000
net.ipv4.tcp_fin_timeout = 15
net.ipv4.conf.bond0.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
fs.file-max = 65536
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_tw_buckets = 2048000
net.core.somaxconn = 4096
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.tcp_timestamps = 0
net.core.dev_weight = 1024
net.ipv4.tcp_max_orphans = 64000
net.ipv4.ip_local_port_range=1024 65535

Viatcheslav E. Kouznetsov пишет:
> Привет!
> Ну как минимум покажи конфиг nginx'а и sysctl (изменения
> относительно дефолтного центосовского)
>
> В сообщении от 16 февраля 2010 17:39 calculator at land.ru написал(a):
>   
>> Привет.
>> При определенной посещаемости nginx перестает отдаваться. В netstat
>> ругань на "times the listen queue of a socket overflowed".
>> nginx с дебагом ругается:
>> 2010/02/11 14:05:52 [info] 27879#0: *53029559 recv() failed (104:
>> Connection reset by peer) while reading client request line, client:
>> 92.37.202.227, server: www.site.ru
>> 2010/02/11 14:05:52 [info] 27879#0: *53029559 writev() failed (32:
>> Broken pipe) while reading client request line, client: 92.37.202.227,
>> server: www.site.ru
>>
>> centos    2.6.18    nginx-0.3.54
>>
>> Интересно то, что ресурсы у системы вроде как есть:
>> mpstat:
>> 10:13:20 AM  CPU   %user   %nice    %sys %iowait    %irq   %soft
>> %steal   %idle    intr/s
>> 10:13:21 AM  all    7.12    0.00   10.62    0.12    0.25   26.62
>> 0.00   55.25  17738.38
>> 10:13:21 AM    0    6.06    0.00   24.24    0.00    0.00   47.47
>> 0.00   22.22   2088.89
>> 10:13:21 AM    1    7.07    0.00   11.11    0.00    0.00   23.23
>> 0.00   58.59   2281.82
>> 10:13:21 AM    2    7.07    0.00    8.08    0.00    1.01   20.20
>> 0.00   65.66   2295.96
>> 10:13:21 AM    3    7.07    0.00    8.08    0.00    1.01   23.23
>> 0.00   62.63   2201.01
>> 10:13:21 AM    4    5.05    0.00    9.09    0.00    0.00   31.31
>> 0.00   56.57   2108.08
>> 10:13:21 AM    5    6.06    0.00    8.08    0.00    0.00   24.24
>> 0.00   62.63   2260.61
>> 10:13:21 AM    6   11.11    0.00    8.08    0.00    0.00   23.23
>> 0.00   58.59   2268.69
>> 10:13:21 AM    7    7.07    0.00    9.09    0.00    0.00   23.23
>> 0.00   60.61   2229.29
>>
>> iostat:
>> Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz
>> avgqu-sz   await  svctm  %util
>> sda               0.00     6.67  0.00 37.67     0.00 13861.33
>> 368.00     0.16    4.20   0.53   2.00
>> sda1              0.00     6.67  0.00 13.00     0.00   157.33
>> 12.10     0.02    1.38   0.08   0.10
>> sda2              0.00     0.00  0.00 24.67     0.00 13704.00
>> 555.57     0.14    5.69   0.77   1.90
>> sda3              0.00     0.00  0.00  0.00     0.00     0.00
>> 0.00     0.00    0.00   0.00   0.00
>>
>> Процессы nginx'а висят примерно пополам в sleep/run.
>> Если рядом к примеру на 81 порт запустить еще 1 nginx, он хорошо отдается.
>> somaxconn и backlog выкручены.
>> Пробовал играться с worker_processes worker_connections rcvbuf sndbuf,
>> ulimits, но эфекта нет :-(
>> С этим можно бороться?
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://nginx.org/mailman/listinfo/nginx-ru
>>     
>
>   



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