文档章节

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

庆沉
 庆沉
发布于 2015/11/27 17:01
字数 694
阅读 24
收藏 0

Nginx worker_processes进程数设置

我们的目的是要把不同的 worker_processes 进程分配至不同核上的 CPU 上运行,一般来说,拥有几个逻辑CPU,就设置为几个worker_processes 为宜,但是 worker_processes 超过8个就没有多大意义了,原因再上面那段英文里已经提到了。

你可以使用这条命令来查看当前的CPU情况:

1

cat /proc/cpuinfo

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

1

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

Nginx worker_cpu_affinity 设置

worker_cpu_affinity 默认是没有开启的,0001 0010 0100 1000 分别代表第1、2、3、4个逻辑CPU,所以我们设置0010 0100 1000将3个进程分别绑定到第2、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也就是第1、3个逻辑CPU上,1010就是第2、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个内核

© 著作权归作者所有

共有 人打赏支持
庆沉
粉丝 35
博文 405
码字总数 140470
作品 0
深圳
运维
UPUPW Nginx版PHP高配引擎发布

UPUPW PHP环境集成包Nginx版默认只开启2个php-cgi进程,如果是高性能的主机那么开启更多的php-cgi进程就能够让PHP疯狂的悦动一把了。 原理阐述: UPUPW PHP套件采用FastCGI使你的所有php应用...

UPUPW
2013/04/18
4.3K
17
Nginx 进程模型及事件处理机制

1)如果采用阻塞调用的方式,当读写事件没有准备好时,必然不能够进行读写事件,那么久只好等待,等事件准备好了,才能进行读写事件。那么请求就会被耽搁。阻塞调用会进入内核等待,cpu就会让...

旋转木马-千里马
2016/01/08
150
0
Nginx 配置全解析(一)

前言 Nginx是一款高性能的HTTP和反向代理服务器。在互联网早期,很多公司使用的都是Apache的HTTPD服务器,可是随着互联网业务的逐渐发展,Apache服务器在很多情况下满足不了业务的需求。这时...

Eumenides_s
2017/10/26
0
0
《九阳神功》之Nginx最全优化

Nginx的优化 1. gzip压缩优化2. expires缓存有还3. 网络IO事件模型优化4. 隐藏软件名称和版本号5. 防盗链优化6. 禁止恶意域名解析7. 禁止通过IP地址访问网站8. HTTP请求方法优化9. 防DOS××...

我不是九爷
07/17
0
0
企业级Nginx服务基础到架构优化详解--25条

1、隐藏nginx header版本号 2、更改源码隐藏软件名称 3、更改nginx默认用户及用户组 4、配置nginx worker进程个数 5、根据CPU核数进行nginx进程优化 6、nginx事件处理模型优化 7、调整Nginx...

MQ_douer
2017/05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用碎片化时间Get Linux系统

起初,我做着一份与IT毫无关系的工作,每月领着可怜的工资,一直想改变现状,但无从下手,也就是大家熟知的迷茫。我相信,每一个人都会或多或少的经历过迷茫,迷茫每一个选择,迷茫工作或者生...

Linux就该这么学
28分钟前
0
0
图像显示深入学习一:Activity启动过程

一个月左右写了图像显示深入学习之文章开篇文章表明了自己近期的计划,前半年重新学习了opengl es,c++以及Linux的一些知识,觉得是时候开始看图像这一块的源码了,边看边补缺补漏吧。 作为该...

JerryLin123
51分钟前
1
0
给MySQL授权远程访问

putty登录服务器; 登录MySQL: mysql -u root -p 新建远程用户: CREATE USER 'myusername' IDENTIFIED BY 'mypassword'; 授权: grant all on *.* to john@'101.102.103.104' identified by......

sweethome
今天
1
0
在t-io老巢造谣,不过有造谣的就会有反造谣的!

只发当事人的截图,不发表评论,以免有引导嫌疑 PS: 截图是由不同的人发过来的 本人已经不在此微信群 图3:有造谣的,就有反造谣的 图4是2018-09-23的t-io官方群的一个发言小统计,有助于让...

talent-tan
今天
100
0
heartbeat 资源

drbd+apache+heartbeat : http://blog.51cto.com/11838039/1827901 heartbeat双机热备的架设 : http://blog.51cto.com/11838039/1827560 对heaetbeat的深一步认识 : http://blog.51cto.co......

寰宇01
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部