оптимизация системы для 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