(60: Operation timed out) while reading response header from upstream
urri
nginx-forum на nginx.us
Пн Авг 8 16:59:59 UTC 2011
День добрый!
Есть сервер, обрабатывающий около 2К
запросов в секунду. Запросы идут на nginx
и передаются на backend. Раньше в роли
бэкенда был php скрипт, запускаемый
через fastcgi. В связи с возрастающей на
сервер нагрузкой был реализован демон
на С, использующий libevent для работы с
сетью.
После смены бэкенда на демона в error.log
переодически сыплются ошибки:
2011/08/08 18:48:20 [error] 30456#0: *17869889685 upstream timed out
(60: Operation timed out) while reading response header from upstream,
client: XX.XX.XX.XX, server: someserver.com, request: "GET
/query/xxx/yyy/ HTTP/1.1", upstream:
"http://127.0.0.1:8888/query/xxx/yyy/", host: "someserver.com",
referrer: "http://somereferrer.com/"
Выставление бОльших таймаутов не
помогло решить проблему.
Возможно проблема где-то в бэкенде, но:
1) Запросы, отправляемые из браузера,
через nginx или напрямую на backend,
обрабатываются за доли секунды.
2) Внутренние очереди сообщений демона
(через которые проходят запросы на
обрабоку между сетевым потоком и
потоком воркером и результаты на
отправку) не превышают пары десятков
ожидающих.
3) Очередь на коннект:
%netstat -Lan
Current listen queue sizes (qlen/incqlen/maxqlen)
Proto Listen Local Address
tcp4 320/0/2048 127.0.0.1.8888 --- демон
tcp4 0/0/4096 *.80 --- nginx
4) Активные соединения по демону:
%netstat -tn | grep 8888 | wc -l
16836
%netstat -tn | grep 8888 | grep -v "TIME_WAIT" | wc -l
1203
ОС: FreeBSD 7.2
nginx: nginx version: nginx/1.0.0
Подскажите, как диагностировать
проблему?
Спасибо!
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213520,213520#msg-213520
Подробная информация о списке рассылки nginx-ru