Doris 修改 mem_limit

1105 - errCode = 2, detailMessage = (IP)[CANCELLED]FullGC release wg overcommit mem, wg id:1, name:normal, used:117.22 GB,limit:31.83 GB,backend:1IP. cancel top memory used tracker <Query#Id=4cd6051c7b7f46d3-80a4fbbd50429ed2> consumption 31.07 GB. details:os physical memory 117.87 GB. process memory used 107.30 GB, limit 106.09 GB, soft limit 95.48 GB. sys available memory 5.65 GB, low water mark 1.60 GB, warning water mark 3.20 GB. Refresh interval memory growth 0 B

1、常见问题

内存超限。
Process has no memory available, cancel top memory usage load: load memory tracker consumption 12.34 GB, backend 10.10.20.14 process memory used 26.06 GB exceed limit 24.97 GB or sys mem available 3.43 GB less than low water mark 1.60 GB. Execute again after enough memory, details see be.INFO.

错误信息分为三部分:

1、Memory limit exceeded::当前正在执行query 3c88608cf35c461d-95fe88969aa6fc30的内存申请过程中发现内存超限。

2、process memory used 2.68 GB exceed limit 2.47 GB or sys mem available 50.95 GB less than low water mark 3.20 GB, failed alloc size 2.00 MB:超限的原因是 BE 进程使用的内存 2.68GB 超过了 2.47GB 的limit,limit的值来自 be.conf 中的 mem_limit * system MemTotal,默认等于操作系统总内存的80%,当前操作系统剩余可用内存 50.95 GB 仍高于最低水位 3.2GB,本次尝试申请 2MB 的内存。

3、executing msg:>, backend 172.24.47.117 process memory used 2.68 GB, limit 2.47 GB:本次内存申请的位置是ExecNode:VAGGREGATION_NODE (id=7)>,当前BE节点的IP是 172.1.1.1,以及再次打印BE节点的内存统计。
 

2. 原因
doirs在查询时,为了防止用户的消耗内存过大。进行了内存控制,一个查询任务,在单个 BE 节点上默认使用不超过 2GB 内存。

遇到内存超限时,用户应该尽量通过优化自己的 sql 语句来解决。

如果确切发现2GB内存不能满足,可以手动设置内存参数。

显示查询内存限制:

//单位是 byte
 
SHOW VARIABLES LIKE "%mem_limit%";
3. 解决
修改Doris mem_limit参数

//设置为4G  这个只对当前会话有效
SET exec_mem_limit = 4294967296;
 
//全局永久设置
SET GLOBAL exec_mem_limit = 4294967296;
注:设置全局变量后,断开 session 重新登录,参数将永久生效。这里笔者没有重新登录,SHOW VARIABLES LIKE "%mem_limit%"; 时值已经改变,但是查询仍报错!!!!

若还不生效,重启be节点!
 

Doris 修改 mem_limit

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值