ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



Добавили request_time (время обработки
запроса, от получения, до отправки
клиенту) в лог nginx.

368325 запросов из 389838 выполнились за 0.00X
секунд
17629 запросов из 389838 выполнились за 0.0X
секунд
2872 запросов из 389838 выполнились за 0.X
секунд

~ 300 запросов выполнялось 75 секунд
(время таймаута) и примерно столько же
записей в error.log (60: Operation timed out) while reading
response header from upstream.

Вот типичный таймаут, время выполнения
запроса 75.005, время когда таймаут был
зафиксирован 16:06:49:

95.95.95.95 - - [10/Aug/2011:16:06:49+0400] - 75.005 - "GET /XXX/YYY/
HTTP/1.1" 504 584

Время которое зафиксировал демон по
этому запросу, запрос пришел в 16:06:49 и
был обработан в эту же секунду:

2011.08.10 16:06:49 v[3]        handler_input: id: 35071142
2011.08.10 16:06:49 v[3]        handler: id: 35071142 ip: 95.95.95.95 uri:
/XXX/YYY/ 
2011.08.10 16:06:49 v[3]        handler_output: id: 35071142

То есть на пути nginx -> [( network -> libevent )] -> input
query было потеряно 75 секунд.

Я думаю это происходит из-за
недопонимания во взаимодействии по
протоколу HTTP, nginx отправляет запрос и
ждет ответ (response header), libevent получает
запрос, но думает что запрос получен не
полностью и продолжает ждать
оставшуюся часть, и только когда nginx
закрывает соединение по таймауту libevent
отправляет запрос на обработку к
демону.

Вот пример access лога по одну из ИП
который получил таймаут, 10 запросов
менее 1 секунды и 2 по 75 секунд.

96.96.96.96 - - [10/Aug/2011:16:05:26 +0400] - 0.080 -  "GET /XXX/ZZZ/
HTTP/1.1" 200 67
96.96.96.96 - - [10/Aug/2011:16:05:26 +0400] - 0.075 -  "GET /XXX/ZZZ/
HTTP/1.1" 200 67
96.96.96.96 - - [10/Aug/2011:16:05:26 +0400] - 0.012 -  "GET /XXX/ZZZ/
HTTP/1.1" 200 67
96.96.96.96 - - [10/Aug/2011:16:05:26 +0400] - 0.009 -  "GET /XXX/ZZZ/
HTTP/1.1" 200 1287
96.96.96.96 - - [10/Aug/2011:16:05:26 +0400] - 0.004 -  "GET /XXX/ZZZ/
HTTP/1.1" 200 67
96.96.96.96 - - [10/Aug/2011:16:05:26 +0400] - 0.003 -  "GET /XXX/ZZZ/
HTTP/1.1" 200 67
96.96.96.96 - - [10/Aug/2011:16:05:26 +0400] - 0.003 -  "GET /XXX/ZZZ/
HTTP/1.1" 200 67
96.96.96.96 - - [10/Aug/2011:16:05:26 +0400] - 0.002 -  "GET /XXX/ZZZ/
HTTP/1.1" 200 67
96.96.96.96 - - [10/Aug/2011:16:05:26 +0400] - 0.005 -  "GET /XXX/ZZZ/
HTTP/1.1" 200 67
96.96.96.96 - - [10/Aug/2011:16:05:26 +0400] - 0.003 -  "GET /XXX/ZZZ/
HTTP/1.1" 200 67
96.96.96.96 - - [10/Aug/2011:16:06:41 +0400] - 75.000 -  "GET /XXX/ZZZ/
HTTP/1.1" 504 182
96.96.96.96 - - [10/Aug/2011:16:06:41 +0400] - 75.000 -  "GET /XXX/ZZZ/
HTTP/1.1" 504 182

Где могут застревать запросы на 75
секунд?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,213520,213642#msg-213642

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.