首页  >  问答  >  正文

nginx的worker_processes该怎么设置

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

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

淡淡烟草味淡淡烟草味2712 天前836

全部回复(3)我来回复

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 17:31:54

    一般来说,设置成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/

    回复
    0
  • 某草草

    某草草2017-05-16 17:31:54

    我个人是机器只跑nginx应用的话,设置总核心数-1 也许是习惯,不过一直工作的很好~

    回复
    0
  • 漂亮男人

    漂亮男人2017-05-16 17:31:54

    我觉得auto就可以了。

    worker_processes auto;

    回复
    0
  • 取消回复