балансировка коннекций между воркерами

Maxim Dounin mdounin at mdounin.ru
Mon Nov 24 23:33:16 MSK 2008


Hello!

On Mon, Nov 24, 2008 at 10:23:16PM +0300, Anton Yuzhaninov wrote:

> А как балансируются приходящие коннекции между несколькими воркерами?

[...]

> Т. е. все 50k коннекций на одном воркере, а второй отдыхает.
>
> Из особенностей конфига - наличие директивы  limit_rate
>
> Если убрать  limit_rate то начинают работать оба воркера.

По умолчанию nginx работает с использованием accept_mutex'а, и при 
малой нагрузке большая часть работы будет на одном worker'е.

Если хочется лучшей балансировки соединений между рабочими 
процессами - можно попробовать выключить accept_mutex:

events {
    accept_mutex  off;
    ...
}

Однако в результате использование CPU несколько вырастет, т.к. для 
принятия соединения будут пробуждаться все рабочие процессы, при 
том что accept() сможет сделать только один из них.

Maxim Dounin





More information about the nginx-ru mailing list