压500万连接到emqx[e5.0.2-alpha.2]k8s集群,repl节点会有某个节点cpu过高

image
可以看到cluster-0节点cpu使用率比其他节点高

可以先检查下每个节点的连接数量、速率分布是否一致呢?

通过什么指令查看每个节点连接量和速率呢?另外5.0.19不会有这个问题

Dashboard 是可以看到一些的

另外这个是500w连接建立后稳定状态下的cpu使用量,不是正在创建连接的时候

我看了一下dashboard cluster-0和cluster-1的连接量是相同的 而且是已完成连接状态,没有连接速率一说

5.0.19也是会有这样的问题出现的

我测试了连接在cluster-3上增加 而cpu使用量最大的还是cluster-0

top 或者 htop 看下是不是确实是被 EMQX 消耗的呢? 如果是的话,就只有详细 DEBUG 下了,需要用

bin/emqx eval 'observer_cli:start()' 

打开 EMQX 的 top 监控窗口,然后在输入 mm 看看 Reductions 这一列与其他节点分别有什么不同

以下是压测500w连接稳定时(没有新增连接)
cluster-0 占用 cpu:6.38

cluster-5占用cpu: 4.10

cluster-1 占用cpu:2.26

cpu使用的趋势图也有很大区别
这是cluster-0的


这是cluster-5的

从你的图里面看到3台机器的连接数基本是均衡的。
但是看不到具体流量对比。需要更多的信息:

bin/emqx eval 'observer_cli:start()' 

打开 EMQX 的 top 监控窗口,然后

  1. 输入 rr 截图,查看那些进程占的CPU多。
  2. 输入 N 截图,查看网络流量信息与其它节点的差异。

还有这上面有运行你自写的插件么?

没有插件,纯emqx

另一台,负载比较小的图呢,也发出来:eyes::eyes:


不好意思,这看不出什么异常的。
麻烦
bin/emqx eval ‘mria_status:agents().’

每个节点都运行一下这个看看结果

你好这个问题我看5.0.21也有,这个后来有跟进debug过,某个版本解决过吗?

我没有听说过类似的问题。

  • 你可以在 CPU 最高的那个节点上的 observer_cli 界面,输入 mq 按照消息队列排序看有没有消息积压的进程。

  • 可以通过某些资源监控软件来观察 cluster-0 上是不是消息收发比其他节点多。