emqx压测20w设备,6700tps;刚压测收到报文数是6700tps;压测一天后,收到报文数只有4700

环境信息

  • EMQ X 版本:4.3.2
  • 操作系统及版本:centos7.8
  • 其他

问题描述

压测客户端两台机器,一台机器分两个ip,一个ip压测5w台设备,1650tps
emqx broker 2个节点
从dashboard看;
压测开始几个小数压测收到报文received数量两个节点加起来是6700;到第二天压测收到两个节点加起来报文received只有4700;
不知道这是啥原因?

压测客户端用的是emqtt_bench

非常感谢!

配置文件及日志


客户端tps:



你几台emqx,几台emqtt_bench,服务器配置如何,每条消息大小多大,多少sub,多少pub,常规订阅还是共享订阅?

emqx2台,64核,256G
客户端两台emqtt_bench,一台启动2个压测命令,
压测命令如下:
nohup ./emqtt_bench pub -t topic/test -h 我的ip -p 31883 -s 10 -q 0 -c 50000 -I 30000 -V 3 --ifaddr 客户端ip > myout1.log 2>&1 &

这个配置应该不止这么小tps,你不是直连emqx,中间做了反向代理?,你的带宽多大的?pub的客户端的cpu消耗是一直在增加?

nginx代理了,都是内部网带宽肯定够的,cpu基本都是这个数上下,没有一直增加;
开始压测几小时pub的数量都是对的,就是到第二天看的时候就有问题,原来有6700tps,第二天看一直是4700tps

那有几个sub的客户端?还是其他的应用接收消息?如果是sub的话,pub并发大了,sub的客户端处理能力是有限的。你这个tps是如何统计出来的呢?并且dashbord上有多少pub连接的?方便把数据流描述一下,看看是否哪个环节的问题,你先排出nginx,直连emqx,看看是否同样问题,nginx你也是单独的服务器,我看你是20W连接,所以nginx也是需要配置多网卡才行

没有sub的了,就是钩子服务接受pub的数据,tps是根据客户端发送emqtt_bench脚本统计的;dashboard上的连接数是一直是20w;nginx是单独服务器没有配置多网卡;
客户端就是两台机器,一台机器有两个ip,相当于4个客户端发送emqtt_bench;
命令如下:
nohup ./emqtt_bench pub -t topic/test -h 我的ip -p 31883 -s 10 -q 0 -c 50000 -I 30000 -V 3 --ifaddr 客户端ip > myout1.log 2>&1 &
数据用例图如下:

nginx不是多网卡配置,那连接也就是5W多的tcp连接,nginx反向代理再创建socket也是需要消耗端口。同时dashbord有多少个pub连着的,我怀疑有的pub客户端已经连接断开了。