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

Anton Yuzhaninov citrin at citrin.ru
Mon Nov 24 22:23:16 MSK 2008


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

$ 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 то начинают работать оба воркера.

-- 
  Anton Yuzhaninov

P. S. В логе на уровне info ничего подозрительного не замечено.





More information about the nginx-ru mailing list