beam.smp cpu占用高

16297 emqx 20 0 5000008 1.4g 12492 S 262.3 9.4 73:44.12 beam.smp


目前emqx是开源版本的5.3 服务器是4核16G的.

先看结论:单看 beam.smp 262% 还不能判定异常,4 核机器上这大约是 2.6 个核的占用,先确认是不是业务负载本身拉高。
问题出现时先执行下面几条,把输出贴出来:

emqx ctl broker stats
emqx ctl vm
emqx ctl listeners
emqx ctl sessions count

再补 1 分钟系统采样:

top -H -p $(pgrep -f beam.smp)
pidstat -u -p $(pgrep -f beam.smp) 1 60

重点看这几项:

  • 连接/断开速率是否抖动(短连接风暴会明显抬高 CPU)
  • 消息吞吐和规则引擎执行量是否突增
  • 会话数、离线队列是否持续增长
    如果开了规则引擎,先把命中量和执行耗时最高的规则贴一下:
emqx ctl rules list

你现在是 5.3,版本比较老。先按上面数据定位;如果确认同样负载下 CPU 仍异常偏高,再升级到 5.x 最新补丁版本做一次对比复测。