emqx 集群某个节点使用内存比其他节点大很多

当前emqx集群有4个节点, 每个节点占用内存如下图


每个节点都运行了: emqx_ctl clients list | awk -F’enqueued_msgs=|, dropped_msgs’ ‘{sum += $2} END {print sum}’ 相差不大 , 连接的client 数量也差不多

bash-5.1$ emqx_ctl vm memory
memory/total : 452310344
memory/processes : 224693320
memory/processes_used : 224211568
memory/system : 227617024
memory/atom : 1433929
memory/atom_used : 1423065
memory/binary : 64199696
memory/code : 42038774
memory/ets : 89039328

bash-5.1$ emqx_ctl vm memory
memory/total : 6015204608
memory/processes : 3029608768
memory/processes_used : 3029383200
memory/system : 2985595840
memory/atom : 1433929
memory/atom_used : 1427912
memory/binary : 2820091488
memory/code : 42101446
memory/ets : 88873664

但是节点的内存使用相差很大

主要差别应该在这里,应该是这个节点上有一些客户端发包频繁和包大小大一些。
不过日志 没有异常情况,可以不用管。

如果是新版本的 emqx,默认每隔 15 分钟会进行一次 GC。 会把多余不用的 binary 给回收掉。这样就会看到内存使用每 15 分钟会降下来一次。如果没有降也不要慌,应该是本来就没有多余的 binary。