Nginx服务器进程数设置和利用多核CPU的方法

Nginx worker_processes进程数设置php

咱们的目的是要把不一样的 worker_processes 进程分配至不一样核上的 CPU 上运行,通常来讲,拥有几个逻辑CPU,就设置为几个worker_processes 为宜,可是 worker_processes 超过8个就没有多大意义了,缘由再上面那段英文里已经提到了。nginx

你可使用这条命令来查看当前的CPU状况:服务器

1性能

cat /proc/cpuinfo测试

或者直接显示逻辑CPU的个数:ui

1spa

cat /proc/cpuinfo | grep "processor" | wc -lcode

Nginx worker_cpu_affinity 设置进程

worker_cpu_affinity 默认是没有开启的,0001 0010 0100 1000 分别表明第一、二、三、4个逻辑CPU,因此咱们设置0010 0100 1000将3个进程分别绑定到第二、三、4个逻辑CPU上:图片

1

2

worker_processes 3;

worker_cpu_affinity 0010 0100 1000;

同时worker_cpu_affinity 能够将同1个进程绑定在2个逻辑CPU上:

1

2

worker_processes 2;

worker_cpu_affinity 0101 1010;

0101也就是第一、3个逻辑CPU上,1010就是第二、4个逻辑CPU上。

从新加载 Nginx 配置文件:

1

/usr/local/nginx/sbin/nginx -s reload

在另外一台安装了 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

worker_processes 2;

worker_cpu_affinity 01 10;

01表示启用了第一个cpu内核,10表示启用了第二个cpu内核
worker_cpu_affinity 01 10;表示开启了两个进程,第一个进程对应着第一个cpu内核,第二个进程对应着第二个cpu内核

两核cpu,开启八个进程

1

2

worker_processes 8;

worker_cpu_affinity 01 10 01 10 01 10 01 10;

开启了8个进程,它们分别对应了开启2个内核

8核cpu,开启8个进程

1

2

worker_processes 8;

worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001;

00000001表示开启第一个cpu内核,00000010表示开启第二个cpu内核,依次类推

8核cpu,开启2个进程

1

2

worker_processes 2;

worker_cpu_affinity 10101010 01010101;

10101010表示开启了第2,4,6,8内核,01010101表示开始了1,3,5,7内核,2个进程对应着8个内核

相关文章
相关标签/搜索