环境信息
- EMQX 版本:4.2.6
- 操作系统及版本:redhat 7
- 其他
问题描述
emq内存占用高,3.5万个客户端,占用了9G,有时会飙到 11G。想请教一下有没有办法获取每个客户端占用的内存大小,或者内存大部分被消耗在什么地方。
目前可以根据HTTP API 获取客户端的一些信息,如: mqueue_len heap_size ,但是看不出来,这些参数和内存占用有什么直接的关系
emq内存占用高,3.5万个客户端,占用了9G,有时会飙到 11G。想请教一下有没有办法获取每个客户端占用的内存大小,或者内存大部分被消耗在什么地方。
目前可以根据HTTP API 获取客户端的一些信息,如: mqueue_len heap_size ,但是看不出来,这些参数和内存占用有什么直接的关系
目前没有直接获取每个客户端的内存占用的接口,只能手动连入 EMQX, 然后使用 observer_cli
等工具查看。
你有 3.5 万个客户端, 9G 的内存消耗,平均下来每个 269 kb的内存消耗,似乎并不算高。
内存耗用过高,可能和消息挤压或者开启了retain
功能有关,你可以先对这两点进行排查
EMQX 自带的命令行工具,也具有初步的内存排查能力,详细的见 vm command
和 recon command
https://www.emqx.io/docs/en/v4.4/advanced/cli.html#vm-command
好的 ,多谢您的回复