我知道worker_processes是表示工作进程的数量,但是这个值应该怎么设置呢?理论上来说按照cpu核心数的倍数来设置是没错的,但是到底是几倍呢?有的人说是有多少个核心就设置多少个进程,还有种说法是设成cpu核心数的两倍。
worker_processes
但是我想这里应该有一个原则,要不然nginx为什么不自己在程序中判断下核心数,然后fork相应的进程呢?肯定这个值是需要依据某种经验来判断的,有人能分享下这方面的经验吗?
一般来说,设置成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/
欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。 温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。