首頁  >  問答  >  主體

nginx的worker_processes該怎麼設定

我知道worker_processes是表示工作進程的數量,但是這個值該怎麼設定呢?理論上來說依照cpu核心數的倍數來設定是沒錯的,但到底是幾倍呢?有的人說是有多少核心就設定多少個進程,還有種說法是設成cpu核心數的兩倍。

但是我想這裡應該有一個原則,要不然nginx為什麼不自己在程式中判斷下核心數,然後fork對應的進程呢?肯定這個數值是需要依據某種經驗來判斷的,有人能分享下這方面的經驗嗎?

淡淡烟草味淡淡烟草味2712 天前838

全部回覆(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
  • 取消回覆