Nginx關於worker_processes性能優化配置

Nginx worker 進程個數

語法:worker_processes number;
默認:worker_processes 1;
worker 進程的數量會直接影響性能,那麼,用戶配置多少個 worker 進程纔好呢?這實
際上與業務需求有關。
每個 worker 進程都是單線程的進程,它們會調用各個模塊以實現多種多樣的功能。如
果這些模塊確認不會出現阻塞式的調用,那麼,有多少 CPU 內核就應該配置多少個進程;反 之,如果有可能出現阻塞式調用,那麼需要配置稍多一些的 worker 進程。

 查看CPU個數:cat /proc/cpuinfo |grep "cores"|uniq  
 或者:top命令後 按1

比如查到結果是 cpu cores : 4
worker_processes 4;

並用worker_cpu_affinity 配置來綁定 CPU 內核

爲什麼要綁定 worker 進程到指定的 CPU 內核呢 ? 假定每一個 worker 進程都是非常繁忙 的 , 如果多個 worker 進程都在搶同一個 CPU , 那麼這就會出現同步問題 。 反之 , 如果每一 個 worker 進程都獨享一個 CPU , 就在內核的調度策略上實現了完全的併發。
更多參照:
https://blog.csdn.net/u011957758/article/details/50959823

例如:

2個CPU內核
worker_processes 2;
worker_cpu_affinity 01 10;

4個CPU內核
worker_processes 4;
worker_cpu_affinity 1000 0100 0010 0001;

8個CUP內核
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章