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 mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru