【已解决】Doris在大内存机器上BE内存无法回收, 经常重启

Viewed 126

Doris版本: doris-2.0.2-rc05-ae923f7

部署环境:
CentOS7, 6节点, 每个节点一个BE进程
每台机器的内存为500G, 机器混部了其它中间件, 所以Doris的mem_limit=6%, 限制Doris的最大使用内存

进行查询时,观察Doris监控到BE节点经常掉线导致集群不可用
image.png

查看操作系统为OOM导致操作系统kill了BE进程
image.png
查看be.out日志错误堆栈
image.png
根据query id去be.INFO查看相关日志
image.png

问题:

  1. 限制了BE进程为6%, 也就是30G, 为什么可以占用超过这个值的内存
  2. 达到了限制的最大内存后, 为什么没有回收占用的内存, 是有什么参数没有配置吗, 因为物理机的内存很大, 如果是默认配置值也会很大
  3. BE集群节点频繁重启的原因, 接下来的排查思路
  4. 哪里可以看到BE触发了GC, 回收了多少内存

感谢

1 Answers

be.out 中的堆栈来看,这是个已经fix的bug
PR: https://github.com/apache/doris/pull/26684

这个导致BE全体挂掉的原因是因为这个bug,应该不是OOM,咱们可以考虑升级到2.0.7呢