1. 程式人生 > >nginx優化CPU配置worker_cpu_affinity

nginx優化CPU配置worker_cpu_affinity

ask inux sse 掩碼 cpu 可選 開啟 內核 ebs

nginx默認是沒有開啟利用多核cpu的配置的。需要通過增加worker_cpu_affinity配置參數來充分利用多核cpu,cpu是任務處理,當計算最費時的資源的時候,cpu核使用上的越多,性能就越好。

查了下官網,配置nginx多核cpu,worker_cpu_affinity使用方法和範例:

句法: worker_cpu_affinity cpumask ...;
            worker_cpu_affinity auto [cpumask];
默認: -
語境: main

將工作進程綁定到一組CPU。每個CPU集合由允許的CPU的位掩碼表示。應該為每個工作進程定義一個單獨的集合。默認情況下,工作進程不綁定到任何特定的CPU。

例如,

worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;

綁定每個工作進程到一個單獨的CPU,而

worker_processes 2;
worker_cpu_affinity 0101 1010;

將第一個工作進程綁定到CPU0 / CPU2,將第二個工作進程綁定到CPU1 / CPU3。
第二個例子適用於超線程。

特殊值auto(1.9.10)允許將工作進程自動綁定到可用的CPU:

worker_processes auto;
worker_cpu_affinity auto;

可選的掩碼參數可用於限制可用於自動綁定的CPU:

worker_cpu_affinity auto 01010101;

該指令僅在FreeBSD和Linux上可用。

配置完之後可以重啟nginx,用ab工具或者wrk工具,可以進行性能測試,在服務器上執行top,然後按1,就可以看到cpu工作情況,如果多個cpu內核的利用率差不多,就證明nginx已經成功利用了多核cpu,測試結束後,cpu內核的負載都同時降低

nginx優化CPU配置worker_cpu_affinity