我知道worker_processes
是表示工作進程的數量,但是這個值該怎麼設定呢?理論上來說依照cpu核心數的倍數來設定是沒錯的,但到底是幾倍呢?有的人說是有多少核心就設定多少個進程,還有種說法是設成cpu核心數的兩倍。
但是我想這裡應該有一個原則,要不然nginx為什麼不自己在程式中判斷下核心數,然後fork對應的進程呢?肯定這個數值是需要依據某種經驗來判斷的,有人能分享下這方面的經驗嗎?
曾经蜡笔没有小新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/