【已解决】doris2.0大查询因为内存限制 cancel掉了,该版本没有落盘策略,有没有其他办法解决

Viewed 82

错误信息:
errCode = 2, detailMessage = (xx.xxx.x.xxx)[MEM_LIMIT_EXCEEDED]PreCatch error code:11, [E11] Allocator sys memory check failed: Cannot alloc:4096, consuming tracker:<Load#Id=6ab27677edf94fd5-81d97594a5ae16a7>, peak used 55763394712, current used 18343585528, exec node:<>, process memory used 204.98 GB exceed limit 200.00 GB or sys available memory 42.34 GB less than low water mark 1.60 GB.

集群规模:11台物理机,40c,四块SSD。混布三台fe的机器内存为320G,其余八台256G

2 Answers

确定几个问题:

  1. 11台节点,其中3台是和FE混合部署,其余8台BE节点上都是独立的doris_be ,确定没有其他服务在占用内存。
  2. 看着这个查询的进程已经使用了 204.98GB ,你可以先看下 memtracker 看看,是不是有什么在占用着内存没释放。还是这个查询本来就这么大?
  3. 可以在报错节点的 (xx.xxx.x.xxx)[MEM_LIMIT_EXCEEDED] be.INFO 中搜一下 grep -A 50 "Memory Tracker Summary" be.INFO,看下memtracker的信息,会有详细的内存记录
    memtracker 日志分析

这种节点挺多的情况下,不混部效果是不是更好