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

calculator на land.ru calculator на land.ru
Вт Фев 16 17:39:06 MSK 2010


Привет.
При определенной посещаемости 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