TiDB 可观测性的设计与实现
背景
数据库性能下降导致 QPS 下降和延迟上升。如何定位到具体的代码行以及操作系统层面的高 CPU 使用情况。
TopSQL: 绑定 SQL 与 CPU 资源
TopSQL: SQL 标签 - Digest
另一种绑定 CPU 资源的方法(在 Go 中)
- Goroutine CPU 状态统计:通过修改 Go 运行时来收集 goroutine 的状态信息。
- 性能影响:这种方法需要自维护一个 Go 分支,并且存在性能影响的问题。
系统表
持续监控
- NG-Monitor:用于持续监控 TiDB 的性能数据。
- TiDB Cluster:集群级别的监控,包含所有 TiDB 服务器的数据。
总结
本文主要介绍了 TiDB 在性能监控方面的设计与实现,包括 TopSQL、SQL 标签、Goroutine 状态统计以及系统表的设计。这些方法有助于快速定位和优化数据库性能问题。