August 08, 2011 12:45PM
День добрый!

Есть сервер, обрабатывающий около 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

Подскажите, как диагностировать проблему?
Спасибо!
Subject Author Posted

(60: Operation timed out) while reading response header from upstream

urri August 08, 2011 12:45PM

Re: (60: Operation timed out) while reading response header from upstream

Alexandr Gomoliako August 08, 2011 01:10PM

Re: (60: Operation timed out) while reading response header from upstream

Никита Козлов August 08, 2011 01:18PM

Re: (60: Operation timed out) while reading response header from upstream

urri August 09, 2011 03:49AM

Re: (60: Operation timed out) while reading response header from upstream

Никита Козлов August 09, 2011 10:08AM

Re: (60: Operation timed out) while reading response header from upstream

urri August 10, 2011 12:45PM

Re: (60: Operation timed out) while reading response header from upstream

urri August 15, 2011 04:44AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 304
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready