集群gc停滞不前怎么处理?tidb_gc_enable = true tidb_gc_life_time=10m0s

【TiDB 使用环境】生产环境
【TiDB 版本】v8.5.4

集群gc停滞不前怎么处理?
tidb_gc_enable = true
tidb_gc_life_time=10m0s

参考下看看。

BR 卡住没

br正常推进

查 INFORMATION_SCHEMA.TIDB_GC 相关与 tikv-ctl / pd 上 GC safepoint;确认 tidb_gc_leader、TiKV GC worker 是否正常,排查大事务/锁阻塞推进,必要时看 tikv_gc_* 监控与日志。

ysql> select * from INFORMATION_SCHEMA.TIDB_GC;
ERROR 1146 (42S02): Table ‘information_schema.TIDB_GC’ doesn’t exist

  • 业务正常批量任务:等待事务结束;后续拆分大事务,单事务执行时长<10min,适配你的gc_life_time=10m
  • 僵死、应用崩溃遗留挂起事务:KILL [connection_id]强制关闭会话

只有gc_worker没推进,其他backup、log、ticdc都是正常推进

我看没有长事务,gc停滞接近17个小时了

集群资源怎么样?
看看Grafana监控,tikv-gc相关的是有速度只是慢,还是为0;
日志有报错么?

看下时间过长的Sleep连接呢

先查长事务 / 快照阻塞 GC safe point

看下GC leader是否正常,执行 curl http://{pd_ip}:2379/pd/api/v1/gc/safepoint 查当前safe_point。如果safe_point不动,多半是GC worker卡住或region在大量调度。
先查 tikv-ctl gc 看各TiKV的GC进度,再检查TiKV日志有没有gc can not progress相关报错。

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