扫码阅读
手机扫码阅读

TiDB丨一次TiDB GC阻塞引发的大排查......

404 2023-09-08

TiDB神州数码云基地案例分析摘要

本文介绍了针对TiDB在某集群中duration异常升高问题的排查过程和预防方案。通过五个步骤,作者成功定位并解决了TiDB GC(垃圾收集)阻塞问题。

分析过程

在发现duration异常升高后,作者首先通过查看集群心电图发现所有分位线均升高,意味着集群内部问题。监控数据显示,在问题发生时,TPS/QPS正常,而TiKV节点负载上升,提示查询压力增大。由此,作者初步判断为GC运行异常造成的问题。

排查步骤

  1. 监控还原SQL流程:排除TiDB Server问题,发现TiKV节点资源使用率上升。
  2. 确认非预期的操作:通过慢查询日志分析,发现Coprocessor Task中Total_keys与Process_keys值相差甚远,说明数据旧版本过多。
  3. 日志分析:发现GC safepoint被长时间未提交的事务阻塞。
  4. 还原真相:确认因频繁的delete操作和未提交的事务导致历史版本堆积,进而影响系统性能。

预防方案

为避免类似问题,建议应用端避免大事务操作,及时提交或回滚事务。同时,建议对TiDB GC进行限流,并利用v5.1版本以上的GC in Compaction Filter特性减少性能波动。

总结

保留充足的事故现场信息对排查问题至关重要。TiDB DBA应关注GC性能指标,确保参数设置正确和GC正常运行,避免性能问题。

关于案例分享

作者希望通过分享这一案例,能够帮助遇到类似问题的人。文末强调了神州数码云基地在IT技术领域的实力。

想要了解更多,点击 查看原文