Nginx(五) 优化测试之worker_processes与worker_cpu_affinity

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

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

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

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

# top

在这里插入图片描述
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;

在这里插入图片描述
当我们发送请求时,很明显的看出第一个核心有大的变化
在这里插入图片描述
但是呢,我配置的是2核心,所以改成2看看。

worker_processes 2;

少了近100,1500+。
第二核心,也有变化,只不过占用不多,因为程序结束了嘛。

worker_processes 4;

在这里插入图片描述
四个皆参与了处理。
但是呢,经过测试,开启2核心时,并发数约为1500,但是开启4核心时,并发数只有约1400。
经测试,1核心是最优,2核心时约1500。

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

worker_cpu_affinity 01 10;

worker_processes为2时,加上这个配置,和没加这个配置时并发数是一样的,约1500。
在这里插入图片描述
在把worker_processes,置为1,会发现核心1几乎被用光了。
在这里插入图片描述
并发数可以达到约1700。

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

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

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

但是核心1和核心2差距很大。
在这里插入图片描述
所以,我们要使他们的处理量平衡。
我的方式是这样的

worker_cpu_affinity 10;

在这里插入图片描述
在这里插入图片描述
浮动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。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值