Nginx worker_processes进程数设置php
咱们的目的是要把不一样的 worker_processes 进程分配至不一样核上的 CPU 上运行,通常来讲,拥有几个逻辑CPU,就设置为几个worker_processes 为宜,可是 worker_processes 超过8个就没有多大意义了,缘由再上面那段英文里已经提到了。nginx
你可使用这条命令来查看当前的CPU状况:服务器
1性能 |
|
或者直接显示逻辑CPU的个数:ui
1spa |
|
Nginx worker_cpu_affinity 设置进程
worker_cpu_affinity 默认是没有开启的,0001 0010 0100 1000 分别表明第一、二、三、4个逻辑CPU,因此咱们设置0010 0100 1000将3个进程分别绑定到第二、三、4个逻辑CPU上:图片
1 2 |
|
同时worker_cpu_affinity 能够将同1个进程绑定在2个逻辑CPU上:
1 2 |
|
0101也就是第一、3个逻辑CPU上,1010就是第二、4个逻辑CPU上。
从新加载 Nginx 配置文件:
1 |
|
在另外一台安装了 Apache 的主机下运行 ab 来测试:
ab -n 20000 -k http://www.1990y.com/p.php
你能够测试一个须要MySQL查询的PHP页面,也能够测试一个静态图片或者页面。
在被测试服务器上可使用 top 查看当前服务器状况,而后按 1 来显示各个逻辑CPU的使用状况。
另一种写法:
worker_processes auto
The special value auto
(1.9.10) allows binding worker processes automatically to available CPUs:
worker_processes auto; worker_cpu_affinity auto;
开启CPU多核利用
规则设定
(1)cpu有多少个核,就有几位数,1表明内核开启,0表明内核关闭
(2)worker_processes最多开启8个,8个以上性能就不会再提高了,并且稳定性会变的更低,所以8个进程够用了
演示实例
两核cpu,开启两个进程
1 2 |
|
01表示启用了第一个cpu内核,10表示启用了第二个cpu内核
worker_cpu_affinity 01 10;表示开启了两个进程,第一个进程对应着第一个cpu内核,第二个进程对应着第二个cpu内核
两核cpu,开启八个进程
1 2 |
|
开启了8个进程,它们分别对应了开启2个内核
8核cpu,开启8个进程
1 2 |
|
00000001表示开启第一个cpu内核,00000010表示开启第二个cpu内核,依次类推
8核cpu,开启2个进程
1 2 |
|
10101010表示开启了第2,4,6,8内核,01010101表示开始了1,3,5,7内核,2个进程对应着8个内核