文档章节

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

庆沉
 庆沉
发布于 2015/11/27 17:01
字数 694
阅读 45
收藏 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个内核

© 著作权归作者所有

共有 人打赏支持
庆沉
粉丝 36
博文 405
码字总数 140470
作品 0
深圳
运维
私信 提问
针对 CPU 的Nginx 配置优化

针对 CPU 的Nginx 配置优化 2018年08月02日 21:18:21 肖申克的围墙 阅读数:237 处理器正处于多核时代。多内核是指在一枚处理器中集成两个或多个完整的计算引擎,多核处理器是单芯片。一枚多...

linjin200
01/14
0
0
Nginx 进程模型及事件处理机制

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

旋转木马-千里马
2016/01/08
150
0
为高负载网络优化 Nginx 和 Node.js

在搭建高吞吐量web应用这个议题上,NginX和Node.js可谓是天生一对。他们都是基于事件驱动模型而设计,可以轻易突破Apache等传统web服务器的C10K瓶颈。预设的配置已经可以获得很高的并发,不过...

傅小黑
2013/01/22
26.9K
18
《九阳神功》之Nginx最全优化

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

我不是九爷
2018/07/17
0
0
UPUPW Nginx版PHP高配引擎发布

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

UPUPW
2013/04/18
4.4K
17

没有更多内容

加载失败,请刷新页面

加载更多

独家解密:阿里超大规模数据中心性能分析

郭健美,阿里巴巴高级技术专家,目前主要从事数据中心的性能分析和软硬件结合的性能优化。CCF 系统软件专委和软件工程专委的委员。曾主持国家自然科学基金面上项目、入选上海市浦江人才计划A...

阿里云云栖社区
27分钟前
3
0
独家解密:阿里大规模数据中心性能分析

郭健美,阿里巴巴高级技术专家,目前主要从事数据中心的性能分析和软硬件结合的性能优化。CCF 系统软件专委和软件工程专委的委员。曾主持国家自然科学基金面上项目、入选上海市浦江人才计划A...

zhaowei121
31分钟前
1
0
mongodb系列~配置文件的优化与处理

mongodb系列~配置文件的优化与处理 一 简介:讲讲如何优化mongo配置文件 二 常规参数 port= //端口 fork=true//守护进程方式启动mongo logpath=shard.log //mongo日志存放路径 journal= tru...

linjin200
33分钟前
1
0
同一台 windows10 设备,安装两个不同版本的mysql

两个mysql 的my.ini文件需要 配置不同的端口。 [mysqld]# 设置3307端口port=3307# 设置mysql的安装目录basedir=F:\\mysql-5.7.24-winx64 # 切记此处一定要用双斜杠\\,单斜杠我这里...

无敌小学僧
33分钟前
2
0
条码插件TBarCode Office系列教程一(Word Add-In篇)

TBarCode Office是一款适用于Microsoft Word 2007、2010和2013的条码插件,通过此插件可以轻松的在您的文档中嵌入代码。此系列教程旨在介绍TBarCode Office的常见问题及解答,帮助大家学习使...

ymy_666666
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部