白也__
(白也)
1
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
三个 tiflash 节点,配置为 32 vcore,128G 内存,在执行 tpch SQL 时出现 OOM,查看监控内存消耗并不多。同时偶尔会出现 TiFlash 节点重启
【概述】 场景 + 问题概述
TPCH 测试
【背景】 做过哪些操作
根据 TPCH 测试文档调整给出的参数
【现象】 业务和数据库现象
【问题】 当前遇到的问题
执行 SQL出现 OOM
【业务影响】
【 TiDB 版本】
5.2.1
【附件】 相关日志及监控(https://metricstool.pingcap.com/)
在 12:43 左右 SQL 出现 OOM,可以看到内存使用量并不高。
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
1 个赞
spc_monkey
(carry@pingcap.com)
2
哪个节点发生的 oom,oom tidb- server 侧会有一些参数进行调整,其他建议关注一些 慢 SQL,可以根据内存排序,看看是否执行计划合理
1 个赞
白也__
(白也)
3
11:40 开始第一次执行 TPCH 测试时, SQL 执行出现 OOM 报错,如下:
execute run failed, err execute query
/PLACEHOLDER/ select
sum(l_extendedprice) / 7.0 as avg_yearly
from
lineitem,
part
where
p_partkey = l_partkey
and p_brand = ‘Brand#44’
select
0.2 * avg(l_quantity)
from
lineitem
where
l_partkey = p_partkey
);
failed Error 1105: Out Of Memory Quota![conn_id=2681]
同时伴随着 tiflash 重启,见截图左一,但是此次内存使用量并不高。
12:43 开始第二次执行 TPCH 测试,同样的 SQL 仍旧出现 OOM 报错,如上 SQL 信息,但是节点没有重启,内存使用量也不高。
两次执行时的内存消耗情况见截图。
问题:
1、当前机器内存足够,想知道SQL 执行时出现的 Out Of Memory Quota 报错是什么引起的
2、两次执行同样的 SQ L 都出现 OOM 报错,为什么第一次 tiflash 会重启,第二次不会
1 个赞
leeray
(Lileiaab)
4
2 个赞
leeray
(Lileiaab)
6
tiflash重启的原因要查tiflash日志才能知道,不能简单的认为oom导致tiflash重启。
1 个赞
Song
(Song)
7
@白也__ 请问修改 mem-quota-query 后还有 OOM 或重启 现象发生吗?
1 个赞
lc17
8
MySQL [(none)]> select @@tidb_mem_quota_query;
±-----------------------+
| @@tidb_mem_quota_query |
±-----------------------+
| 1073741824 |
±-----------------------+
1 row in set (0.00 sec)
MySQL [(none)]> set tidb_mem_quota_query=34359738368;
Query OK, 0 rows affected (0.01 sec)
MySQL [(none)]> select @@tidb_mem_quota_query;
±-----------------------+
| @@tidb_mem_quota_query |
±-----------------------+
| 34359738368 |
±-----------------------+
1 row in set (0.00 sec)
然后就可以愉快地tpch测试了
1 个赞
bench 之前,请执行 analyze table xxx
1 个赞
OOM 是 TiDB 的话,建议执行下 analyze table。因为如果统计数据不准,执行计划也不合理,导致没有把查询下推到 tiflash
1 个赞