配置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表示該內核關閉。
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
0001表示啓用第一個CPU內核,0010表示啓用第二個CPU內核,依此類推
worker_processes最多開啓8個,8個以上性能提升不會再提升了,而且穩定性變得更低,所以8個進程夠用了。
測試nginx是否有用到多個CPU內核 ,在另一臺機器上執行ab.exe -c 1000 -n 1000 http://www.domain.com/index.php
在服務器上執行top,然後按1,就可以看到CPU內核的工作情況。如果多個CPU內核的利用率都相差不多,證明nginx己經成功的利用了多核CPU。
測試結束後,CPU內核的負載應該都同時降低。