nginx-1.1.4
Maxim Dounin
mdounin на mdounin.ru
Ср Сен 21 10:05:12 UTC 2011
Hello!
On Wed, Sep 21, 2011 at 12:13:44PM +0400, Михаил Монашёв wrote:
> Здравствуйте, Maxim.
>
> >> > Изменения в nginx 1.1.4 20.09.2011
> >>
> >> > *) Добавление: модуль ngx_http_upstream_keepalive.
>
> >> И ещё вопрос, а не имеет ли смысла включить постоянные соединения с
> >> бэкендом по дефолту? Это конечно смена предыдущего поведения, но
> >> ведь большинство бэкендов может держать постоянные соединения.
>
> > Нет. В частности потому, что большинство бекендов не умеют держать
> > сколько-нибудь большое количество соединений. И использование
> > keepalive'а может привести к тому, что все соединения на бекенде
> > будут заняты ничего не делающими keepalive-соединениями, а реальные
> > запросы будут ждать.
>
> Проблема в том, что каждый воркер будет создавать долгоживущие
> keepalive-соединения и проблема решится лишь уменьшением числа
> воркеров до 1-2?
Если бекенд может держать N соединений, и рабочих процессов
nginx'а у нас W (включая все фронтенды), то в каждом рабочем
процессе нельзя кешировать более, чем N/W соединений, иначе
проблемы гарантированы. Если W > N - кешировать соединения вообще
нельзя.
> Я похоже наступил на больной мозоль этого модуля: он не предназначен
> для работы с Апачем в качестве бэкенда, а только с nginx-ом или
> memcached-ом. :-(
Это, в общем-то, общая проблема keepalive-соединений и
process/thread-based бекендов.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru