FE 内存泄露问题

【集群情况】

  • 版本: 2.2.10
  • 节点:3个 FE节 点独立部署(8c 32G),JVM 设置了 25G

【遇到的问题】

  1. FE 机器可用内存持续减少,设置的 JVM 限制内存已经超了,但是没有被回收,而且这台机器只有 FE 一个服务,可以排除是其他服务的影响
  1. 查监控发现 JVM 实际使用的内存并不多,最大都不超过20G,但是机器可用内存 32G 都吃满了!

【疑问】

  1. 之前升级前的版本 2.0.8 也是有这个内存泄露问题,但是升级后发现并没有修复

  2. 除了重启大法,还有什么办法可以释放内存吗

是Follower结点使用内存过高吗?

3个FE节点都是 follower 角色,通过 proxy 分流

3个FE都有这个现像,还是说非Leader结点,有这个现像

三个节点都有这种情况

jvm配置了多大?

JVM 设置了 25G,机器内存有 32G

这个是GC的问题,当前的GC策略在capacity扩大之后不会缩小,即便used已经很小了。我们这边在测试使用g1的回收策略。

有个 FE 节点我用了 G1 收集器,但还是一样,会一点点蚕食剩余的内存

看这used很正常的,进程的内存没有下降吗?

没有的,进程内存不会随着jvm降低而降低,多余的内存貌似并不会释放给系统

jstat -gc pid 1000 1000
用这个命令看下

可以看到什么端倪吗

G1 这个看起来还算正常,进程使用的内存确实会比jvm配置的稍微大一些的。这里没有释放是因为内存一直有申请,然后gc,如果长时间不使用了,这个capacity会降下去的。
你说的这个机器32G内存吃满了,是还有buffer占用吧。