On Tue, Feb 16, 2010 at 05:39:06PM +0300, calculator@xxxxxxx wrote:
Привет.
При определенной посещаемости 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, но эфекта нет :-(
С этим можно бороться?
Какой метод обработки ( http://sysoev.ru/nginx/docs/events.html )
используется ?