5.0.3 tidb-server oom原因排查

【 TiDB 使用环境】
5.0.3

【概述】5.0.3 tidb-server oom原因排查

【背景】 无

【现象】 tidb-server oom

【问题】 tidb-server oom

【业务影响】tidb不稳定

【TiDB 版本】 5.0.3




tidb_mem_quota_query 参数为什么控制不住内存呢?

这个参数只能控制到 一条,,但是如果是 N 条呢…

这种情况,只能持续去优化了 :zipper_mouth_face:

1 个赞

你可以控制每条 SQL 的最大执行时间,这样可以让 tidb 多活一会, 然后持续优化 慢SQL,慢慢就会正常了

我设置4G,日志里显示使用了6G多,这个能查到原因,我现在通过token-limit进行内存限制


这个内存溢出是因为heapinuse过大导致的,这个是哪些地方使用了,有办法解决嘛

参考下这个帖子:

不过,我感觉你的场景是慢SQL 导致的,你可以查下

是的慢查询比较严重

那只能优化了


HeapInuse有办法限制嘛,什么原因会导致这么大的HeapInuse

参考试试这个:

1、set global tidb_analyze_version = 1; //使用v1版本的 analyze
2、执行以下sql产生的语句: select distinct(concat('DROP STATS ',table_schema, '.', table_name,';')) from information_schema.tables, mysql.stats_histograms where stats_ver = 2 and table_id = tidb_table_id ;
3、步骤二产生的语句全部执行完后,确认stats_ver = 2以下语句没有内容, select distinct(concat(table_schema, '.', table_name)) from information_schema.tables, mysql.stats_histograms where stats_ver = 2 and table_id = tidb_table_id ;
4、重启tidb-server

按照你的环境来说,应该就是慢SQL 导致的,只能限制最大执行时间和单个 SQL 内存最大占用内存,不能柔性或者更加贴合业务侧的需要…

2 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。