龙空技术网

Nginx(七) 测试使CPU占用更多能否提升并发数

程序员杰哥 201

前言:

此时姐妹们对“nginxcpu占用”可能比较关心,你们都想要剖析一些“nginxcpu占用”的相关文章。那么小编同时在网摘上收集了一些有关“nginxcpu占用””的相关文章,希望小伙伴们能喜欢,姐妹们一起来了解一下吧!

具体的测试过程就不说了,因为使用了docker。直接讲结果吧。

测试环境是这样的

用一个主(作为负载均衡转发),俩个从(负载均衡用的)。为什么需要负载均衡?因为我们之前测试分配核心和进程时,越多它并发数就越低。当我们使用一核心时,反而是并发数最高,且核心的资源都被占满了。

所以,我想测试,当占满所有的核心,能否提升并发数。

主:配置了1核心一个线程,分配给第四个核心

从1:配置了1核心一个线程,分配给第一个核心

从2:配置了1核心一个线程,分配给第二个核心

它们都在linux机器下,因为用docker开了容器。所以,还是在单个机器下。

测试结果是并发数只能到1300。为什么反而降了?因为负载均衡和之前测的不一样,之前是直接为http服务器,而现在多了负载均衡,所以会更慢。

但是这次的测试并不是完全没有作用,而是解决了一个我一直存在的疑问:为什么最高只能1700,明明我cpu还没用光啊,要是能够充分利用肯定能更高,可是它为什么就不用光呢?

这次的测试就是因为这个疑问而起的,其实就是负责nginx的那个核心满了!它无法处理更多的请求了,这样请求就不会进入其它的核心。而不是那些优化无效。

所以,负责负载均衡转发的服务器,要核心很强才行。多核的话,它们的上下文切换速度也得考虑,而不是越多核心并发数越高(仅在对比单核)。

要租服务器的时候选择计算能力高的双核。1核主要负责负载均衡转发,另外一个处理linux自身程序。负责项目运行的从机可以为单核,只要调好权重即可,压力大了就加机器负载均衡。

上面说的“不是越多核心并发数越高”,其实也不恰当,只是对比核数少而已。实际上,你十二核肯定能秒杀一核的(同款)。

预算低就选单核,不差钱模式的话就当我什么都没说。

标签: #nginxcpu占用