配置网卡中断绑核章节中对网卡产生的中断进行了绑核,除此之外还需要对Nginx应用进行绑核,这样业务和中断就能分别用不同的核来处理,不会出现冲突。
调优原则:以压满业务核为前提,使用尽量少的中断核。
1 | vim /usr/local/nginx/conf
|
1 2 3 4 5 6 7 | user root; worker_processes 4; worker_cpu_affinity 1 10 100 1000; |
参数命令说明如表1所示。
参数名称 |
参数解释 |
---|---|
worker_processes |
设置运行Nginx应用的CPU核数。 |
worker_cpu_affinity |
设置哪些核用于运行Nginx应用。通过2进制掩码的形式来表示,每个核用单独一行表示,比如“10”表示第2个核被Nginx应用使用。 |
不同的硬件配置、不同的总核数、不同的客户端类型下,要发挥出最佳性能,中断绑核数和Nginx应用绑核数的比例会有差异。
以下使用“kunpeng 4826服务端(1822网卡)+kunpeng 4826客户端(1822网卡)”做为硬件平台,以HTTPress做为测试客户端为例,如表2所示列举了不同有效核数时的最佳绑核比例。
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 |