Таймауты на бакенде

Dmitry E. Oboukhov unera at uvw.ru
Thu Jul 25 09:21:47 UTC 2013


столкнулся тут с проблемкой

выкатили некое обновление, которое привело к росту нагрузки в
несколько раз. огребли 504.

стали анализировать логи, 
nginx отдает 504 по причине того что бакенд дескать не отвечает, время
обработки запроса у него 60 секунд:

128.69.168.54 - - [25/Jul/2013:09:37:00 +0400] "POST /dispatcher/ajax/drivers HTTP/1.1" 504 584 "http://бла-бла/dispatcher" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36" [60.000 : 60.000]

в логе ошибок при этом:

2013/07/25 09:37:00 [error] 4832#0: *425146128 upstream timed out (110: Connection timed out) while connecting to upstream, client: 128.69.168.54, server: бла-бла.ru, request: "POST /dispatcher/ajax/drivers HTTP/1.1", upstream: "http://127.0.0.1:81/dispatcher/ajax/drivers", host: "бла-бла", referrer: "http://бла-бла/dispatcher"

(в конце логов добавлены '[$request_time : $upstream_response_time]')

ну и вроде как бы очевидно, бакенд не справляется надо их количество
увеличить сперва. Откатились пока на старую версию, нагрузки меньше.
все ок.

далее поглядел я в логи апача, а там такая интересная хрень:

...
[Thu Jul 25 07:52:55 2013] [info] [client 127.0.0.1] Request header read timeout
[Thu Jul 25 07:53:09 2013] [info] [client 127.0.0.1] Request header read timeout
[Thu Jul 25 07:53:16 2013] [info] [client 127.0.0.1] Request header read timeout
[Thu Jul 25 07:53:29 2013] [info] [client 127.0.0.1] Request header read timeout
[Thu Jul 25 07:53:43 2013] [info] [client 127.0.0.1] Request header read timeout
[Thu Jul 25 07:53:43 2013] [info] [client 127.0.0.1] Request header read timeout
[Thu Jul 25 07:53:43 2013] [info] [client 127.0.0.1] Request header read timeout

и так на периоде 4 часа
...


то есть получается что в то же самое время (все это на периоде 4 часа
примерно было) когда nginx отдавал 504 через 60 секунд после начала
работы жалуясь на 'upstream timed out' в это же время апач жаловался
что к нему  коннектятся но ничего не просят.

nginx'ов - 4 вокрера конфиг для данного роута простейший:

    location / {
        proxy_pass          http://backend;
        proxy_set_header    Host            $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;

        more_clear_input_headers 'Transfer-Encoding';

        proxy_set_header X-Forwarded-Protocol $scheme;
    }

-- 

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera at debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537



Подробная информация о списке рассылки nginx-ru