查询报错信息显示如下 err: Error 1105: errCode = 2, detailMessage = Memory limit exceeded:, executing msg:. bac
err: Error 1105: errCode = 2, detailMessage = Memory limit exceeded:, failed alloc size 0, exceeded tracker:, limit 2.00 GB, peak used 12.03 GB, current used 12.03 GB>, executing msg:node:, vsort, while sorting input.>. backend 192.168.30.116 process memory used 59.63 GB, limit 200.00 GB. If query tracker exceed, `set exec_mem_limit=8G` to change limit, details see be.INFO.
为了防止用户的一个查询可能因为消耗内存过大。查询进行了内存控制,一个查询任务,在单个 BE 节点上默认使用不超过 2GB 内存。
用户在使用时,如果发现报 Memory limit exceeded 错误,一般是超过内存限制了。
遇到内存超限时,用户应该尽量通过优化自己的 sql 语句来解决。
如果确切发现2GB内存不能满足,可以手动设置内存参数。
显示查询内存限制:
mysql> SHOW VARIABLES LIKE "%mem_limit%";+---------------+------------+| Variable_name | Value |+---------------+------------+| exec_mem_limit| 2147483648 |+---------------+------------+1 row in set (0.00 sec)
exec_mem_limit 的单位是 byte,可以通过 SET 命令改变 exec_mem_limit 的值。如改为 8GB。
mysql> SET exec_mem_limit = 8589934592; #只是针对本次的查询修改,全局加上globalQuery OK, 0 rows affected (0.00 sec)mysql> SHOW VARIABLES LIKE "%mem_limit%";+---------------+------------+| Variable_name | Value |+---------------+------------+| exec_mem_limit| 8589934592 |+---------------+------------+1 row in set (0.00 sec)
(1)以上该修改为 session 级别,仅在当前连接 session 内有效。断开重连则会变回默认值。
(2)如果需要修改全局变量,可以这样设置:SET GLOBAL exec_mem_limit = 8589934592;。设置完成后,断开 session 重新登录,参数将永久生效。
--结束END--
本文标题: doris查询报错err: Error 1105: errCode = 2, detailMessage = Memory limit exceeded:<consuming tracker:...
本文链接: https://lsjlt.com/news/393926.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0