具体的测试过程就不说了,因为使用了docker。直接讲结果吧。
测试环境是这样的
用一个主(作为负载均衡转发),俩个从(负载均衡用的)。为什么需要负载均衡?因为我们之前测试分配核心和进程时,越多它并发数就越低。当我们使用一核心时,反而是并发数最高,且核心的资源都被占满了。
所以,我想测试,当占满所有的核心,能否提升并发数。
主
:配置了1核心一个线程,分配给第四个核心
从1
:配置了1核心一个线程,分配给第一个核心
从2
:配置了1核心一个线程,分配给第二个核心
它们都在linux机器下,因为用docker开了容器。所以,还是在单个机器下。
文章图片
测试结果是并发数只能到1300。为什么反而降了?因为负载均衡和之前测的不一样,之前是直接为http服务器,而现在多了负载均衡,所以会更慢。
但是这次的测试并不是完全没有作用,而是解决了一个我一直存在的疑问:为什么最高只能1700,明明我cpu还没用光啊,要是能够充分利用肯定能更高,可是它为什么就不用光呢?
这次的测试就是因为这个疑问而起的,其实就是负责nginx的那个核心满了!它无法处理更多的请求了,这样请求就不会进入其它的核心。而不是那些优化无效。
所以,负责负载均衡转发的服务器,要核心很强才行。多核的话,它们的上下文切换速度也得考虑,而不是越多核心并发数越高(仅在对比单核)。
【Nginx(七) 测试使CPU占用更多能否提升并发数】要租服务器的时候选择计算能力高的双核。1核主要负责负载均衡转发,另外一个处理linux自身程序。负责项目运行的从机可以为单核,只要调好权重即可,压力大了就加机器负载均衡。
上面说的“不是越多核心并发数越高”,其实也不恰当,只是对比核数少而已。实际上,你十二核肯定能秒杀一核的(同款)。
预算低就选单核,不差钱模式的话就当我什么都没说。
推荐阅读
- Go|Docker后端部署详解(Go+Nginx)
- 后台|NATAPP内网穿透通过nginx实现一个端口访问多个不同端口服务
- nginx-1.20.2安装使用
- NGINX 创始人 Igor Sysoev 退出 F5(20 年发展“简史”令人肃然起敬)
- Nginx|Nginx~从入门到入坑。
- nginx|Mac配置PHP环境(brew安装nginx+php)
- 使用ngx_lua构建高并发应用(2)
- svn|前瞻(Spring Boot 2.4.0 第二个里程碑版本发布)
- nginx cache踩坑
- keepalived + nginx组建高可用负载平衡Web server集群