Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: php-fpm upstream pool
- To: nginx-ru@xxxxxxxxx
- Subject: Re: php-fpm upstream pool
- From: "igor.goncharenko" <nginx-forum@xxxxxxxx>
- Date: Wed, 14 Dec 2011 10:19:46 -0500
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:References:In-Reply-To:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=pX4vueFGJidvYA+vcTPTJl5EgcswGnDrSvwy1zJ3qR8=; b=f8QxTD14yCHca26U03nOyqAuZSdtGIE1L+Rsy6U1I644wpDoBZWA4+ihole8hXBsW61WJd5qOPcPmKRTdrLn08N4dgI389DVKwViJNJOaeWXSLp/hHVJNTdRXZ7wJFfi;
- In-reply-to: <20111202100736.GC67687@xxxxxxxxxx>
- References: <20111202100736.GC67687@xxxxxxxxxx>
Maxim Dounin Wrote:
-------------------------------------------------------
> Hello!
>
> On Fri, Dec 02, 2011 at 03:47:31AM -0500, igor.goncharenko wrote:
>
> > > http://trac.nginx.org/nginx/ticket/64
> >
> > Да. Очень похоже это оно. Тогда в
продакшин двигать на 1.0.X нельзя пока :(
>
> Баг потенциально может проявится
тогда и только тогда, когда более
> одного бекенда в пуле - мёртвые. И
почти не имеет шансов проявится, если
при этом
> более одного живого бекенда.
А, интересно, что случается если мы
имеем всего 2 бэкенда. Неработающий
один считается больше одного или нет? :)
> При этом мёртвый бекенд в пуле - это,
вообще говоря,
> чрезвычайная ситуация.
Вот-вот, и пока я иду чинить мертвый
бэкенд(ы), я должен быть уверен что nginx
работает с живыми.
> [...]
>
> > на эту ветку и сейчас вроде как время
> > пришло, но появилась задача с fcgi
пулом.
> > И теперь оказалось, похоже, смысла
> > мигрировать на 1.0.X нет - потому что
для
> > задач балансера этот баг - серьезный.
>
> В 0.8.x в этом месте те же проблемы, и
существенно
> хуже в других местах.
Никто не меняет продукт в продакшине на
новую версию только потому что он
существенно лучше в каких-то местах. Я
например, меняю только:
a) если я наступил на баги которые были
починены в новой ветке
б) если таковых нет - раз в год или в два
на новую стабл ветку, чтобы не
отставать от жизни
Некоторые вообще не трогают если
работает, opennet например, вообще на 0.6,
если не врут в хеадерах.
> > Насчет 1.1.X. Ну во-первых, ветка
позиционируется как девелопмент,
соответственно, использовать на
> > продакшине можно только в крайнем
случае.
>
> Отличие stable состоит в первую очередь
в том, что её, по возможности, не ломают,
т.е. обновления с версии на
> версию не должны приносить сюрпризов.
В development нужно быть несколько
осторожнее с обновлениями (желательно
читать changelog).
changelog читается всегда независимо от
ветки.
> По стабильности - 1.1.10 сейчас лучше, чем
1.0.10.
Хорошо, убедили, может тогда есть смысл
перевести 1.1.X в стейбл, если она по
стабильности лучше и фич уже добалено
много за полгода?
> > Во-вторых, упомянутый вами вопрос с
долгими запросами. У меня
> > могут быть тяжелые запросы к базе,
надо подумать как изменение в схеме
> > балансинга может на них повлять -
судя по всему тем, что "живые"
> бэкенды будут нагружены больше чем
раньше.
>
> Если вас это пугает - то зачем вы
просите сделать merge этого
> изменения в stable? :)
Больше не буду :)
> На самом деле там всё не очень страшно.
Алгоритм такой: упавший
> бекенд не будет призна снова
работающим, пока не отработает
> успешно хотя бы один запрос, на него
отправленный. Запросы на
> него будут отправляться 1 раз в
fail_timeout.
>
> Если запросы долгие (много длиннее
fail_timeout, т.е. не просто
> "тяжёлые запросы к базе", какой-нибудь
streaming или long
> polling) это, потенциально, может привести
к тому, что бекенд
> (после смерти и оживания обратно)
некоторое время будет продолжать
> считаться мёртвым (пока хотя бы один
запрос не завершится, или клиент его не
закроет).
> Нагрузка, соответственно, будет идти
большей частью на другие
> бекенды.
>
> Есть, впрочем, мнение, что для streaming/long
polling подобное поведение тоже вполне
> разумно, и максимум что в подобных
ситуациях следует сделать - это
> уменьшить fail_timeout.
Все логично, спасибо за разъяснение.
> > Я бы сделал изменение схемы
> > балансировки в 1.0.x опциональным и
> > выключенным по дефолту, если это
> > возможно.
> Нет.
Ну, попробовать я должен был :)
>
> Maxim Dounin
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
PS. Тут развели холивар по поводу haproxy и
alive чеков. Как человек, пользующийся
haproxy тоже (как tcp балансировщик), скажу,
что от таких чеков больше вреда чем
пользы :) Я так скажу - в nginx такая
функциональность не нужна, а если так
нравятся alive чеки, никто не запрещает
вместо nginxа пользовать haproxy благо он http
тоже балансировать умеет (может уже и
кэшировать, давно в новые версии haproxy не
смотрел, хотя вряд ли :).
---
Igor
Posted at Nginx Forum:
http://forum.nginx.org/read.php?21,219032,220048#msg-220048
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|