php-fpm upstream pool
Maxim Dounin
mdounin на mdounin.ru
Чт Дек 1 17:12:27 UTC 2011
Hello!
On Thu, Dec 01, 2011 at 09:19:43AM -0500, igor.goncharenko wrote:
> Перенес nginx на физическую машину,
> теперь "всегда живой" бэкенд перестал
> отваливаться по таймауту (надо бы
> инвестигировать поведение фрибсд в
> виртуальной машине, но это не по теме).
Если это не в рамках одной виртуальной машины, то скорее
исследовать надо сетевую подсистему виртуализатора. Обычно она не
блещет и/или имеет в себе statefull firewall, со всеми вытекающими
прелестями в виде потери соединений при переполнении таблицы
состояний и невозможности использования timewait'ов, пока не
протухнет соответствующая запись в firewall'е.
> Ситуация слегка поменялясь, но все
> равно плохо - на 10000 соединений 30
> отвалились по 504 ошибке, вот таким
> образом:
>
> 10.0.0.1 - - [01/Dec/2011:15:08:40 +0200] "GET /fcgi-proxy/ HTTP/1.1"
> 504 183 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-"
> "10.0.0.77:9003, 10.0.0.77:9004 504, 504 - 10.002, 10.002" 20.004
> SSL:-/- "gzip:-"
>
> 10.0.0.1 - - [01/Dec/2011:15:08:40 +0200] "GET /fcgi-proxy/ HTTP/1.1"
> 504 183 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-"
> "10.0.0.77:9003, 10.0.0.77:9004 504, 504 - 10.002,10.002" 20.004 SSL:-/-
> "gzip:-"
>
> {skip}
> причем есть и корректные, например:
>
> 10.0.0.1 - - [01/Dec/2011:15:06:07 +0200] "GET /fcgi-proxy/ HTTP/1.1"
> 200 33 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.70)" "-" "10.0.0.77:9001,
> 10.0.0.77:9002, 10.0.0.73:9000 504, 504, 200 - 10.002, 10.001, 0.006"
> 20.009 SSL:-/- "gzip:-"
Судя по всему, это одно из проявлений вот этого бага:
http://trac.nginx.org/nginx/ticket/64
> ----
> Поставил nginx 1.1.9. Намного лучше, в общем
> то, что хотелось. На 10000 соединений 504-х
> (и 502) нет вообще, а есть только 18
> соединений по 10 секунд:
>
> HTTP/1.1 200 10.01 secs: 22 bytes ==> /fcgi-proxy/
> HTTP/1.1 200 10.01 secs: 22 bytes ==> /fcgi-proxy/
> HTTP/1.1 200 10.01 secs: 22 bytes ==> /fcgi-proxy/
> {skip}
>
> Это потому что 1.1.X проверяет нерабочий
> бэкенд только одним запросом. Есть ли
> планы сделать так же в 1.0.X ветке?
Скорее нет, чем да. Изменение в целом хорошее, но потенциально
может затронуть работающие конфигурации с долгими запросами и/или
3rd party балансировщиками. А чем 1.1.x не устраивает?
Maxim Dounin
Подробная информация о списке рассылки nginx-ru