Tidb监控显示IO有延迟,请问如何解决?

Tidb监控显示IO有延迟,请问如何解决?这个是什么原因引起的呢?
从图中看到红色的梯形的图,显示有IO延迟。

这个说明你有慢sql

1 个赞

看慢查询,这是时间段的 这个黄色是insert吧

1 个赞

通过 grafana 查下这个时间的监控指标,对比下看看

查看下对应对应时间的监控tidb–> Transaction–>Statement Lock Keys以及tidb–> Transaction–>Acquire Pessimistic Locks Duration看下是否有锁。以及Node-expoter下面的disk里面的write latch是否有延迟。

2 个赞

这个原因太多了阿,你那个几个截图没办法排查

建议从SQL入手排查

  • 优化磁盘性能:确保 TiKV 节点使用 SSD 或高性能磁盘,避免磁盘故障或负载过高。
  • 增加 TiKV 节点:如果 TiKV 节点负载过高,可以通过扩容 TiKV 节点来分担压力。
  • 优化 TiDB 查询负载:减少 TiDB 节点的查询负载,优化 SQL 查询,避免不必要的长时间查询。
  • 检查并优化网络:确保集群各节点之间的网络连接稳定,带宽足够。
  • 调整 RocksDB 配置:根据 TiKV 的负载情况,优化 RocksDB 存储引擎的配置。
1 个赞

这段时间的慢查要挨个去看分析

同时段QPS也有所增加,可能是有业务进来了。可以看下对应时段的慢SQL,另外也可以看下IO的火焰图,看看对应时刻是否有高IO的对象。

看看这个延迟对应的是什么,有慢语句、添加索引等

这些信息看不出来,建议可以从如下方面排查入手:
磁盘性能瓶颈:检查磁盘IO性能,确保磁盘足够快,建议使用SSD。
TiKV资源瓶颈:增加TiKV节点数或优化TiKV的内存和磁盘配置,确保TiKV节点分担负载。
网络延迟:检查TiDB集群的网络连接,确保低延迟网络。
TiKV配置优化:调整TiKV的 rocksdb 配置,如增加 storage.block-cache-size 或调整 raftstore 配置。
慢查询:优化SQL查询,减少磁盘访问,避免全表扫描。
缓存未命中:增加TiDB或TiKV的缓存配置,提高缓存命中率。

你说的是这样的延迟吗?我这样跑了好几年了。也没出问题。一点波动,没必要大惊小怪。如果非要查一下,就去慢查询看对应时间,这个延迟对应的就是慢查询

这个不是IO延迟,是sql延迟

你这是,sql的问题的,需要优化sql了

看看能不能定位到SQL,是不是全表扫了

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