php-fpm upstream pool

Gena Makhomed gmm на csdoc.com
Пт Дек 2 10:53:31 UTC 2011


On 02.12.2011 12:07, Maxim Dounin wrote:

> Алгоритм такой: упавший
> бекенд не будет признан снова работающим, пока не отработает
> успешно хотя бы один запрос, на него отправленный.  Запросы на
> него будут отправляться 1 раз в fail_timeout.
>
> Если запросы долгие (много длиннее fail_timeout, т.е. не просто
> "тяжёлые запросы к базе", а какой-нибудь streaming или long
> polling) это, потенциально, может привести к тому, что бекенд
> (после смерти и оживания обратно) некоторое время будет продолжать
> считаться мёртвым (пока хотя бы один запрос не завершится, или
> клиент его не закроет).  Нагрузка, соответственно, будет идти
> большей частью на другие бекенды.
>
> Есть, впрочем, мнение, что для streaming/long polling подобное
> поведение тоже вполне разумно, и максимум что в подобных ситуациях
> следует сделать - это уменьшить fail_timeout.

а почему нельзя делать health checks не тратя на это запросы клиентов,
например, таким способом, как это сделано в haproxy. и если эта light
проверка жив ли бекенд завершится не успешно - то и нет смысла туда
отправлять запрос пользователя и устраивать ему denial of service ?

-- 
Best regards,
  Gena



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