我用高配的物理机虚拟出一台CPU 16核,32G的虚拟机。
单独创建连接,什么都不做,可以达到百万在线数。但是如果同时执行发布和订阅,吞吐量大部分徘徊在5千~1万区间,增加更多的发布和订阅客户端都没用,内存和CPU也没有达到极限。
如图,左边是32G的EMQX服务器,旁边2台是4G内存的客户机,可以看到服务器内存还剩12G,CPU闲置20%左右。
使用的测试命令为:
/apps/emqtt-bench/bin/emqtt_bench pub -h 192.168.252.90 -c 50000 -I 100 -t bench_1/%i -s 1024 -q 2
/apps/emqtt-bench/bin/emqtt_bench sub -h 192.168.252.90 -t bench_1/%i -q 2 -c 60000 -i 1
emqx服务器已经按系统调优的部署去优化了,但怎么样都无法增加吞吐量https://www.emqx.io/docs/zh/v5.6/performance/tune.html
服务器使用的debian12系统。
最高峰的时候,在线量和订阅量均可以达到40万左右。但吞吐量也只是1万左右。除非降低发布和订阅客户端的数量,吞吐量才稍微多1点点
官方有什么建议可以增加吞吐量吗?