转载

Nginx针对CPU的配置优化指令

“在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进程,赋值方法为:

worker_cpu_affinity = 0001 0010 0100 1000 0001 0010 0100 1000;	 #循环赋值

如果一台机器的CPU为八核,并且 worker_processes = 8 ,那么worker_cpu_affinity的赋值方法为:

worker_cpu_affinity = 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000

内容来源:《Nginx高性能web服务器详解》

nginx优化
运维那些事
  • 作者:JackLiu
  • 发表时间:2020-12-09 03:29:14
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 公众号转载:请在文末添加作者公共号二维码

评论列表