nginx的worker_processes该怎么设置

八方名动
  • 516

我知道worker_processes是表示工作进程的数量,但是这个值应该怎么设置呢?理论上来说按照cpu核心数的倍数来设置是没错的,但是到底是几倍呢?有的人说是有多少个核心就设置多少个进程,还有种说法是设成cpu核心数的两倍。

但是我想这里应该有一个原则,要不然nginx为什么不自己在程序中判断下核心数,然后fork相应的进程呢?肯定这个值是需要依据某种经验来判断的,有人能分享下这方面的经验吗?

回复
阅读 57k
3 个回答

一般来说,设置成CPU核的数量即可,另外不要忘了设置worker_cpu_affinity,这个配置用于将worker process与指定cpu核绑定,降低由于多CPU核切换造成的寄存器等现场重建带来的性能损耗。关于这个配置项可以参考http://www.nginx.org/en/docs/ngx_core...

另外,淘宝维护的nginx分支Tengine可以使用auto命令自动配置worker_processes和worker_cpu_affinity。Tengine已经开源:http://tengine.taobao.org/

我個人是機器只跑nginx應用的話,設置總核心數-1 也許是習慣,不過一直工作的很好~

我觉得auto就可以了。

worker_processes auto;
你知道吗?

宣传栏