我的fe日志和be日志都有类似的日志:
2026-06-02 19:47:25,438 WARN (Expired Analysis Task Killer|61) [AnalysisTaskWrapper.cancel():93] Job id [1778356700968], Task id [1778356700973], catalog [xxx], db [xxx], table [xxx], column [xxx] cancelled, cost time:2420
2026-06-02 19:47:25,441 WARN (Expired Analysis Task Killer|61) [AnalysisTaskWrapper.cancel():96] Cancel job failed job info : java.lang.RuntimeException: Failed to fetch internal SQL result. java.lang.Exception: (10.71.11.63)[MEM_LIMIT_EXCEEDED]PreCatch error code:11, [E11] Allocator mem tracker check failed, [MEM_LIMIT_EXCEEDED]failed alloc size 544.00 MB, memory tracker limit exceeded, tracker label:Query#Id=b7915fa5763d4066-a23a7ea7f4d51185, type:query, limit 2.00 GB, peak used 1.99 GB, current used 1.85 GB. backend 10.71.11.63, process memory used 111.76 GB. exec node:, can set exec_mem_limit to change limit, details see be.INFO.
查了资料,也没有找到相关问题。查询报错 Memory Tracker Limit Exceeded
文档说的是其中的 exec_mem_limit 是单次查询和导入的执行内存限制,但从 Doris 1.2 开始支持查询内存超发 (overcommit),旨在允许查询设置更灵活的内存限制,内存充足时即使查询内存超过上限也不会被 Cancel,所以通常用户无需关注查询内存使用。
我的集群是3台104C 384G 内存,混合部署,fe/be同机不同盘 。
exec_mem_limit参数已经设置很大,但是还是 频繁在报异常:
mysql> SHOW VARIABLES LIKE '%exec_mem_limit%';
+----------------+--------------+---------------+---------+
| Variable_name | Value | Default_Value | Changed |
+----------------+--------------+---------------+---------+
| exec_mem_limit | 100147483648 | 100147483648 | 0 |
+----------------+--------------+---------------+---------+
1 row in set (0.00 sec)
mysql> SHOW GLOBAL VARIABLES LIKE '%exec_mem_limit%';
+----------------+--------------+---------------+---------+
| Variable_name | Value | Default_Value | Changed |
+----------------+--------------+---------------+---------+
| exec_mem_limit | 100147483648 | 100147483648 | 0 |
+----------------+--------------+---------------+---------+
1 row in set (0.01 sec)
用AI分析了我的配置和异常,找到一个可能影响的参数:默认 statistics_sql_mem_limit_in_bytes = 2147483648
暂时还未修改,因为需要重启fe。
请教一下各位大佬,statistics_sql_mem_limit_in_bytes 和 exec_mem_limit的区别与关系?增加statistics_sql_mem_limit_in_bytes是否可以缓解上述异常?