EMQX 版本
sysdescr : EMQX
version : 5.0.0
datetime : 2024-03-28T08:42:33.755258417+00:00
uptime : 1 days, 4 hours, 6 minutes, 25 seconds
EMQX 安装部署方式
docker
EMQX 集群情况
单节点
服务器(运行 EMQX 的机器)硬件配置
16核 32GB
服务器操作系统和平台
Centos7, amd64
在 EMQX 中启用的功能
Exhook
测试场景
200 个设备连接以 200 QPS 进行测试
具体问题
运行官方提供的 demo,通过 Jmeter 建立 200 个连接压测, EMQX Dashboard 显示消息流入 200 条/秒,但是观察 exhook 的监控,显示处理速度平均下来只有每秒 100 条左右。
是有什么配置没有打开吗?
EMQX Dashboard 中的消息流入速度:
Exhook 的当前速度:
尝试过的操作
因为是用做 kafka 的转发,当用 200 QPS 流入 emqx 时,发现向 kafka 流入速度正好是 100 条/秒,就对压测的消息流入和连接数量分别进行放大(300 QPS)和缩小(100 QPS),结果 exhook 消息处理速度同样会保持此比例(150 QPS) 和 (50 QPS)。
为了避免干扰,只用单纯的官方提供的 demo 进行测试,发现是同样的结果。
服务器负载
部署 exhook 的服务器很低。
下面是 ping emqx 服务器的延迟:
[root@localhost ~]# ping 172.18.100.23
PING 172.18.100.23 (172.18.100.23) 56(84) bytes of data.
64 bytes from 172.18.100.23: icmp_seq=1 ttl=64 time=0.321 ms
64 bytes from 172.18.100.23: icmp_seq=2 ttl=64 time=0.338 ms
64 bytes from 172.18.100.23: icmp_seq=3 ttl=64 time=0.332 ms
^C
--- 172.18.100.23 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.321/0.330/0.338/0.016 ms
同样尝试过和 emqx 部署在一起,排除延迟干扰,发现同样没有区别。
DEBUG 日志
没有发生错误和告警,日志都是 debug 日志,截取了最近的 50000 行:
exhook-log.zip (571.0 KB)。