exec_mem_limit 内存限制参数对于 导入 内存无效

Viewed 39

2.1.8版本
首先开启sql级别的内存限制,通过
#enable_query_memory_overcommit = false

然后

set global exec_mem_limit = 274877906944;

重启BE、重启FE、重启集群、重启flink、spark导入任务都会报错:

type:load, limit 2.00 GB, peak used 1.88 GB, current used 1.88 GB. backend 10.72.121.8, 

并且spark-connector-doris通过添加

  "doris.exec.mem.limit" = "687194767360"

还是无效

求解决

2 Answers

enable_query_memory_overcommit=false
set global exec_mem_limit = xxx

这个只限制导入的 fragment 阶段,不限制 memtable 写入阶段
对 stream load 而言,fragment 通常就只有 scan,大部分内存在 memtable 写入。

如果想要调整导入内存大小,可以尝试调整下:
load_process_max_memory_limit_percent 和load_process_soft_mem_limit_percent