配置Nginx应用绑核
目的
配置网卡中断绑核章节中对网卡产生的中断进行了绑核,除此之外还需要对Nginx应用进行绑核,这样业务和中断就能分别用不同的核来处理,不会出现冲突。
调优原则:以压满业务核为前提,使用尽量少的中断核。
方法
- 打开“/usr/local/nginx/conf”路径下的Nginx配置文件nginx.conf。
1
vim /usr/local/nginx/conf
- 按“i”进入编辑模式,修改对应的配置参数。
- 将worker_processes设置为绑定的核数。
- 添加worker_cpu_affinity参数,通过2进制掩码的形式来指定绑定哪些核用于Nginx业务。
1 2 3 4 5 6 7
user root; worker_processes 4; worker_cpu_affinity 1 10 100 1000;
参数命令说明如表1所示。
表1 参数说明 参数名称
参数解释
worker_processes
设置运行Nginx应用的CPU核数。
worker_cpu_affinity
设置哪些核用于运行Nginx应用。通过2进制掩码的形式来表示,每个核用单独一行表示,比如“10”表示第2个核被Nginx应用使用。
- worker_cpu_affinity的二进制掩码中,最后一个有效行后需要用“;”号来结尾。
- worker_cpu_affinity有效行数需要与worker_processes设置值一致。
- 为了最大程度的发挥服务器性能,处理网卡中断的核建议不要和处理Nginx业务的核重叠,建议“处理网卡中断核数”+“处理Nginx业务核数”=“服务器上实际能使用的总核数”。
不同的硬件配置、不同的总核数、不同的客户端类型下,要发挥出最佳性能,中断绑核数和Nginx应用绑核数的比例会有差异。
以下使用“kunpeng 4826服务端(1822网卡)+kunpeng 4826客户端(1822网卡)”做为硬件平台,以HTTPress做为测试客户端为例,如表2所示列举了不同有效核数时的最佳绑核比例。
表2 不同Nginx场景下的最佳绑核比例 Nginx场景
能使用的总核数
网卡中断绑核数
Nginx应用绑核数
客户端数目
https长连接:4 core
4
0
4
1
https长连接:8 core
8
2
6
1
https长连接:48 core(1P)
48
8
40
2
https长连接:96 core(2P)
96
16
80
4
https短连接:4 core
4
0
4
1
https短连接:8 core
8
0
8
1
https短连接:48 core(1P)
48
0
48
2
https短连接:96 core(2P)
96
4
92
2
http长连接:4 core
4
1
3
1
http长连接:8 core
8
2
6
1
http长连接:48 core(1P)
48
12
36
2
http长连接:96 core(2P)
96
24
72
4
http短连接:4 core
4
2
2
1
http短连接:8 core
8
4
4
2
http短连接:48 core(1P)
48
24
24
4
http短连接:96 core(2P)
96
48
48
4
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。