Nginx 优化测试之worker_processes与worker_cpu_affinity

反诈示警:如遇到文章内跳转至别的网站或产生需要交钱,交易等行为,均为诈骗行为,请谨慎对待。对于网上兼职、刷单、刷信誉的就是诈骗,请勿相信!需要提供身份证明、短信验证和短信链接点击都是诈骗, 请不要提供!同时请下载“国家反诈中心”App能自查自检,规避诈骗电话,免遭损失。

机器:cpu2核,内存2G。
测试工具:apache的ab做请求测试。
测试页面:安装完的那个index.html
配置文件:安装完默认的
说明:以下的并发数值是运行不下于十遍得来了,不精确,但确实是有变化的。

ab -c 10000 -n 10000 http://192.168.247.140/

-n:请求的次数
-c:并发数

开启top,然后按1显示所有cpu。

# top

Nginx  优化测试之worker_processes与worker_cpu_affinity,插图,来源:资源仓库www.zycang.com
0.0% us:用户空间占用CPU的百分比。
0.0% sy:内核空间占用CPU的百分比。
0.0% ni:改变过优先级的进程占用CPU的百分比
0.0% id:空闲CPU百分比
0.0% wa:IO等待占用CPU的百分比
0.0% hi:硬中断(Hardware IRQ)占用CPU的百分比
0.0% si:软中断(Software Interrupts)占用CPU的百分比

我虚拟机配置的是2核心,出现四个是因为逻辑cpu的缘故。

worker_processes

设置进程数,按CPU核数设置,默认的配置为1。

worker_processes 1;

Nginx  优化测试之worker_processes与worker_cpu_affinity,插图1,来源:资源仓库www.zycang.com
当我们发送请求时,很明显的看出第一个核心有大的变化
Nginx  优化测试之worker_processes与worker_cpu_affinity,插图2,来源:资源仓库www.zycang.com
但是呢,我配置的是2核心,所以改成2看看。

worker_processes 2;

Nginx  优化测试之worker_processes与worker_cpu_affinity,插图3,来源:资源仓库www.zycang.com
第二核心,也有变化,只不过占用不多,因为程序结束了嘛。

worker_processes 4;

Nginx  优化测试之worker_processes与worker_cpu_affinity,插图4,来源:资源仓库www.zycang.com
四个皆参与了处理。
但是呢,经过测试,开启2核心时,并发数约为1500,但是开启4核心时,并发数只有约1400。
经测试,1核心是最优,2核心时约1500。

为每个进程分配cpu01是第一个核心,10是第二个核心。

worker_cpu_affinity 01 10;

worker_processes为2时,加上这个配置,和没加这个配置时并发数是一样的,约1500。
Nginx  优化测试之worker_processes与worker_cpu_affinity,插图5,来源:资源仓库www.zycang.com
在把worker_processes,置为1,会发现核心1几乎被用光了。
Nginx  优化测试之worker_processes与worker_cpu_affinity,插图6,来源:资源仓库www.zycang.com
并发数可以达到约1700。

结果就是,越多核心参与处理,并发数就越少。

但是想想,核心1也要处理别的程序啊,我们不能为了这个并发数而全部占用,要是别的程序挂了怎么办?

所以按我的理解,这俩个配置就是为了使所有的cpu参与进去。

但是核心1和核心2差距很大。
Nginx  优化测试之worker_processes与worker_cpu_affinity,插图7,来源:资源仓库www.zycang.com
所以,我们要使他们的处理量平衡。
我的方式是这样的

worker_cpu_affinity 10;

Nginx  优化测试之worker_processes与worker_cpu_affinity,插图8,来源:资源仓库www.zycang.com
Nginx  优化测试之worker_processes与worker_cpu_affinity,插图9,来源:资源仓库www.zycang.com
浮动20以内。并发数约1600。
没配置的话默认是走01,所以没有配置会高那么一丢丢,约70。

结论:
worker_processes 1 并发数约为1600。
worker_processes 2 并发数约为1500。
worker_processes 1 + worker_cpu_affinity 01 10 约为1700。
worker_processes 2 + worker_cpu_affinity 01 10 约为1500。
worker_processes 2 + worker_cpu_affinity 10 约为1600。

如需 WordPress 优化加速、二次开发、网站维护、企业网站建设托管等服务,点此联系我 | 近期站内热门福利推荐:
文章版权及转载声明

本文地址:https://www.zycang.com/118155.html
文章转载或复制请以超链接形式并注明来源出处。 本文最后更新于:2023-08-08 12:35:58
声明:某些文章或资源具有时效性,若有 错误 或 所需下载资源 已失效,请联系客服QQ:11210980

喜欢就支持一下吧
点赞54赞赏 分享
相关推荐
评论 抢沙发

请登录后发表评论