Nginx預設沒有開啟利用多核CPU,我們可以通過增加worker_cpu_affinity配置參數來充分利用多核CPU。CPU是任務處理,計算最關鍵的資源,CPU核越多,效能就越好。
配置Nginx多核CPU,worker_cpu_affinity使用方法和範例
1. 2核CPU,開啟2個進程
worker_processes 2;
worker_cpu_affinity 01 10;
01表示啟用第一個CPU核心,10表示啟用第二個CPU核心
worker_cpu_affinity 01 10;表示開啟兩個進程,第一個進程對應著第一個CPU核心,第二個進程對應著第二個CPU核心。
2. 2核CPU,開啟4個進程
worker_processes 4;
worker_cpu_affinity 01 10 01 10;
開啟了四個進程,它們分別對應著開啟2個CPU核心
3. 4核CPU,開戶4個進程
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
0001表示啟用第一個CPU核心,0010表示啟用第二個CPU核心,依此類推
4. 4核CPU,開啟2個進程
worker_processes 2;
worker_cpu_affinity 0101 1010;
0101表示開啟第一個和第三個核心,1010表示開啟第二個和第四個核心
2個進程對應著四個核心
worker_cpu_affinity配置是寫在/etc/nginx/nginx.conf裡面的。
2核是 01,四核是0001,8核是00000001,有多少個核,就有幾位元,1表示該核心開啟,0表示該核心關閉。
5. 8核CPU,開戶8個進程
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
0001表示啟用第一個CPU核心,0010表示啟用第二個CPU核心,依此類推
worker_processes最多開啟8個,8個以上效能提升不會再提升了,而且穩定性變得更低,所以8個進程夠用了。
配置完畢後,重啟nginx ,執行/etc/init.d/nginx restart
測試nginx是否有用到多個CPU核心 ,在另一台機器上執行ab.exe -c 1000 -n 1000 http://www.domain.com/index.php
ab.exe是裝apache後帶的一個效能測試工具,它可以類比多用戶端的並發請求。
在伺服器上執行top,然後按1,就可以看到CPU核心的工作情況。如果多個CPU核心的利用率都相差不多,證明nginx己經成功的利用了多核CPU。
測試結束後,CPU核心的負載應該都同時降低。
http://blog.chinaunix.net/uid-20662363-id-2953741.html
以上就介紹了配置Nginx多核CPU,worker_cpu_affinity使用方法和範例,包括了affinity方面的內容,希望對PHP教程有興趣的朋友有所協助。