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

Igor Sysoev is at rambler-co.ru
Mon Nov 24 22:45:48 MSK 2008


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

> А как балансируются приходящие коннекции между несколькими воркерами?
> 
> $ uname -srp
> FreeBSD 7.1-PRERELEASE amd64
> 
> $ nginx -v
> nginx version: nginx/0.7.22
> 
> $ ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)'
>   PID  PPID %CPU   VSZ WCHAN  COMMAND
>  6345     1  0.0  6824 pause  nginx: master process /usr/local/sbin/nginx
>  6346  6345  0.0 420520 kqread nginx: worker process (nginx)
>  6347  6345  0.0 44712 kqread nginx: worker process (nginx)
> 
> $ fstat | grep 'nginx.*tcp' | awk '{print $3}' | sort | uniq -c
>    2 6345
> 50002 6346
>    2 6347
> 
> Т. е. все 50k коннекций на одном воркере, а второй отдыхает.
> 
> Из особенностей конфига - наличие директивы  limit_rate
> 
> Если убрать  limit_rate то начинают работать оба воркера.

По идее, limit_rate не должен на это влиять.
Попробуй

events {
   accept_mutex  off;
}


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list