配置Nginx应用绑核

目的

配置网卡中断绑核章节中对网卡产生的中断进行了绑核,除此之外还需要对Nginx应用进行绑核,这样业务和中断就能分别用不同的核来处理,不会出现冲突。

调优原则:以压满业务核为前提,使用尽量少的中断核。

方法

  1. 打开“/usr/local/nginx/conf”路径下的Nginx配置文件nginx.conf。

    1
    vim /usr/local/nginx/conf
    

  2. “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

  3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。