文档章节

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

庆沉
 庆沉
发布于 2015/11/27 17:01
字数 694
阅读 15
收藏 0
点赞 0
评论 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
博文 407
码字总数 140338
作品 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的优化 1. gzip压缩优化2. expires缓存有还3. 网络IO事件模型优化4. 隐藏软件名称和版本号5. 防盗链优化6. 禁止恶意域名解析7. 禁止通过IP地址访问网站8. HTTP请求方法优化9. 防DOS××...

我不是九爷
07/17
0
0
Nginx 配置全解析(一)

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

Eumenides_s
2017/10/26
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
企业级Nginx服务基础到架构优化详解--25条

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

newthink
2016/10/26
0
0
LNMP环境下Nginx、PHP、MySQL优化

修改/usr/local/php/etc/php-fpm.confPHP5.2调整:max_children的值PHP5.3以上版本调整:pm.minspareservers和pm.maxspareservers的值适当增加最大值可以按内存xxMB/2/20 的整数来算,最小值...

小良
2016/03/17
17
0
关于CPU亲和性的测试

今天看到运维的同事在配置nginx的CPU亲和性时候,运维同事说他在所有的机器上都是按照8核的方式来配置worker进程的CPU亲和性的。 但我觉得就是有点不太对劲,就查了一下nginx的处理workercpu...

Kevin6188
2016/10/09
3.3K
14
高性能服务器架构思路(三)——分布式系统概念

版权声明:本文由韩伟原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/165 来源:腾云阁 https://www.qcloud.com/community 任何的服务器的性能都是有极...

偶素浅小浅
2016/11/08
7
0
一次批量重启引发的 Neutron 大面积网络故障

现场回顾 故事发生于某个下午,采用 salt 更新某集群的 neutron.conf (log 相关配置项) 并批量重启 neutron-openvswitch-agent(以下简称 neutron-ovs-agent),不久便有人反馈云主机宕机。 立...

koala bear
2015/10/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周六乱弹 —— 妹子和游戏哪个更好玩

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享唐朝乐队的单曲《国际歌》 《国际歌》- 唐朝乐队 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子- :日常祈雨 邪恶的大祭...

小小编辑
32分钟前
72
4
流利阅读笔记32-20180721待学习

“人工智能”造假:只有人工,没有智能 Lala 2018-07-21 1.今日导读 当今社会,擅长单个方面的人工智能已经盛行,手机借助 AI 智慧防抖技术帮助大家拍出清晰照片,谷歌研发的 AI 助手将可以帮...

aibinxiao
今天
2
0
我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
今天
0
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
0
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
13
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部