v2.1.5 关于exec_mem_limit 疑问

Viewed 28

感觉exec_mem_limit 没有生效,我使用SHOW VARIABLES LIKE 'exec_mem_limit';查看到的限制内存是2G,使用SHOW PROPERTY FOR 'root'; 暗道的 exec_mem_limit 看到的内存限制是 -1 ,那我如果执行查询或者导入 ,doris 内部是如何限制内存的占用情况的? 反正我执行了一个 2000W+ 的 isnert into select 内存拍了10多个G

1 Answers

exec_mem_limit 是个软限制,默认不会限制单个查询内存的大小。主要是 enable_query_memory_overcommit 控制。

默认 enable_query_memory_overcommit = true,此时在内存充足时,单个query的内存使用不受限制

enable_query_memory_overcommit = false,单个query的内存超过 exec_mem_limit 就会cancel,exec_mem_limit是个session veriable,可以针对单个query分别设置