针对CPU的nginx配置优化

处理器已经进入了多核时代,多核的意思是一个处理器集成两个或者多个计算引擎。一枚多核处理器可以承载多枚内核。将每个内核作为分立的逻辑处理器,通过多喝个内核之间的划分,在特定的周期执行更多的任务,提高并行处理能力。

在Nginx配置中,有两个关于进程的指令,worker_processes 和worker_cpu_affinity,想必大家对worker_processes 都熟悉。 worker_processes 1 开启一个进程来处理。

下面 ,我来讲解一下两个指令

一、worker_processes

worker_processes指令是用来设计Nginx进程数,官方默认设为1,赋值太多了,将会对系统IO影响效率,降低Nginx服务器性能。但是为了让多核CPU能够更好的处理并行任务,我们可以讲该值设置大一些,最好这个值是机器CPU的倍数,并不是越大越好。
如针对双核CPU 将他设置为2或者4 , 我这里的机器是4核CPU,所以我讲这个值设置为4

worker_processes 4;

二、worker_cpu_affinity

worker_cpu_affinity指令用来分配每个进程的CPU的工作内核
这个指定设置有点麻烦。首先,我们来看一下,在我机器4核,我是怎么设置的。

如果在笔者电脑上设置worker_processes 4 ;

笔者的电脑设置

worker_processes 4 ; 我四核开启了四个进程
worker_cpu_affinity 0001 0010 0100 1000; 
//我们CPU 就是四核 就是四组值,0是不使用,1是使用。 这样每一个进程都有一个 cpu内核了。
{解析 四组二进制值分别对应着四个进程,第一个进程对应的是0001 第二个进程对应的是0010,表示第二个进程计算器内核,第三个进程对应的是0100,表示第三个计算机内核,第四个进程对应1000}

NGINX 用2核4G_Nginx

如果在笔者电脑上设置worker_processes 8 ;

笔者的电脑设置

worker_processes 8 ; 
worker_cpu_affinity  0001 0010 0100 1000 0001 0010 0100 1000;

如果你的电脑CPU 是双核,但是你设置为 worker_processes 设置为4
下面是配置

worker_processes 4 ;

worker_cpu_affinity 01 10 01 10 ;

设置完毕 重启一下nginx,就能测试出效果