“在Nginx配置文件中,有两个指令‘worker_processes’,‘worker_cpu_affinity’ 可以针对多核CPU进行配置优化”
# worker_processes
worker_processes指令用来设置Nginx服务的进程数,根据以往经验来看,为了让多核CPU能够很好的并行处理任务,我们建议将worker_processes指令赋值适当的增大,当然这个值不是越大越好,Nginx进程太多可能增加主进程的调度负担,也可能影响系统的IO效率,所以说,一般和CPU的核数相当或者核数的2倍即可。拿4核CPU举例:
worker_processes = 4;
在设置好worker_processes指令之后,就很有必要设置worker_cpu_affinity指令。
# worker_cpu_affinity
worker_cpu_affinity指令用来为每个进程分配CPU的工作内核,这个指令的值是由几组二进制值表示的,所以设置起来稍有麻烦,但是有迹可循,并不是很难。在设置值中,几个进程就几组数,几核CPU每组中就几个数,1代表使用,0代表不使用。值得注意的是,二进制位的排列顺序和CPU的顺序是相反的,建议将不同的进程平均分配到不同的CPU运行内核上。以四核4进程为例,就会有四组值,并且每组有四位数,设置指令如下:
worker_cpu_affinity = 0001 0010 0100 1000; #第一个进程使用第一个内核,第二个进程使用第二个内核,以此类推
如果将worker_processes指令的值设置为8,即四核8进程,赋值方法为: