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