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

具体的测试过程就不说了,因为使用了docker。直接讲结果吧。
测试环境是这样的
用一个主(作为负载均衡转发),俩个从(负载均衡用的)。为什么需要负载均衡?因为我们之前测试分配核心和进程时,越多它并发数就越低。当我们使用一核心时,反而是并发数最高,且核心的资源都被占满了。
所以,我想测试,当占满所有的核心,能否提升并发数。
:配置了1核心一个线程,分配给第四个核心
从1:配置了1核心一个线程,分配给第一个核心
从2:配置了1核心一个线程,分配给第二个核心
它们都在linux机器下,因为用docker开了容器。所以,还是在单个机器下。
Nginx(七) 测试使CPU占用更多能否提升并发数
文章图片

测试结果是并发数只能到1300。为什么反而降了?因为负载均衡和之前测的不一样,之前是直接为http服务器,而现在多了负载均衡,所以会更慢。
但是这次的测试并不是完全没有作用,而是解决了一个我一直存在的疑问:为什么最高只能1700,明明我cpu还没用光啊,要是能够充分利用肯定能更高,可是它为什么就不用光呢?
这次的测试就是因为这个疑问而起的,其实就是负责nginx的那个核心满了!它无法处理更多的请求了,这样请求就不会进入其它的核心。而不是那些优化无效。
所以,负责负载均衡转发的服务器,要核心很强才行。多核的话,它们的上下文切换速度也得考虑,而不是越多核心并发数越高(仅在对比单核)。
【Nginx(七) 测试使CPU占用更多能否提升并发数】要租服务器的时候选择计算能力高的双核。1核主要负责负载均衡转发,另外一个处理linux自身程序。负责项目运行的从机可以为单核,只要调好权重即可,压力大了就加机器负载均衡。
上面说的“不是越多核心并发数越高”,其实也不恰当,只是对比核数少而已。实际上,你十二核肯定能秒杀一核的(同款)。
预算低就选单核,不差钱模式的话就当我什么都没说。

    推荐阅读