admin check table 导致 tidb 节点内存飙升

【TiDB 版本】:v4.0.15

描述:
这边使用 admin check table 校验一张7亿条数据的大表时,连接所在节点内存一直升高不释放,并且连接无法kill。

解决方案:
手动重启 tidb 点节

下面这个图是这边每间隔10s将会把当前执行连接的快照保存下来:

从中午的11点51开始执行,

直到17点左右,这里的MEM就一直没有变化,像是卡死了。

监控图:

日志啥都没有找到。过滤了 ERROR 和 FATAL ,没有有用的信息。

2 个赞

admin check table或index 尽量业务空闲的时候用

https://blog.csdn.net/weixin_36135773/article/details/116148450

1 个赞

如果问题还在,试下kill掉job

1 个赞

kill 不掉,最后重启了,要不然就OOM了。

1 个赞

检查索引数据是否一致,非常消耗CPU,尤其是大表的时候

1 个赞

感觉是不合理的。
可能算一个 bug,或者至少是有优化的空间的。

理论上实现应该是一个流式的,而不是一个需要一直持有着内存的。
就两遍检查:

  1. 读一遍数据部分,确认对应的索引都存在
  2. 读一遍索引部分,确认从索引出去的指向的数据都是有效的

都是可以一次一批,流式的做的…
即使为了优化速度而做成并行了,也不应该到 10G 这种级别

可能跟 dumpling 导数据的时候内存占用高是同一类问题

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