51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

nginx CPU亲和配置 详解

CPU亲和(affinity)减少进程之间不断频繁切换,减少性能损耗,其实现原理是建CPU核心和Nginx工作进程绑定方式,把每个worker进程固定到对应的cpu上执行,减少切换CPU的cache miss,获得更好的性能。

我们测试一下:

查看当前CPU物理状态

[root@tomcat01 ~]$ lscpu | grep "CPU(s)"
CPU(s): 2
On-line CPU(s) list: 0,1
NUMA node0 CPU(s): 0,1

#以上服务器有一颗物理CPU,上面有2个核心

将nginx worker进程绑定至不通的核心上,官方建议与CPU的核心保持一致

第一种绑定组合方式(不推荐)

worker_processes 12;
worker_cpu_affinity 000000000001 000000000010 000000000100 000000001000 000000010000 000000100000 000001000000 000010000000 000100000000 001000000000 010000000000 10000000000;

第二种方式(使用较少)

worker_processes 2;
worker_cpu_affinity 101010101010 010101010101;

第三种最佳绑定方式,修改nginx启动的work进程为自动。(用这种方式就可以)

worker_processes auto;
worker_cpu_affinity auto;

|--------------------------| | 查看nginx worker进程绑定至对应cpu |

[root@web01 ~]# ps -eo pid,args,psr|grep nginx

赞(7)
未经允许不得转载:工具盒子 » nginx CPU亲和配置 详解