集群突然出现延迟高,求排查思路

【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.4.2
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
项目运行中突然出现延迟高的问题,导致业务卡顿。期间QPS没有明显的波动,业务并没有突发上升。
dashboard可以看到出现大量慢查询,这些Sql平常都不慢的。IO负载高。
求大牛们指导排查思路。谢谢!!
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

慢查询:

top sql分析:

随便点一个慢的sql,看看慢在哪

随便点一个,时间都耗在等待上面。估计是拥堵了。
源头那几个sql应该是耗在kv的IO读取上面。

1 个赞

可以看看10:37-10:40左右的top sql,是不是有额外的批处理/手动sql执行;看你io也处于高水位线,可以考虑水平扩容tikv缓解下热点
P.S:后面可考虑将版本升到7.1/7.5,性能抖动概率大幅下降 :upside_down_face:

你这个很明显在10点40左右有sql特别消耗资源,某个服务cpu使用率也同时变高,可以在那段时间查看top sql找到消耗资源多的sql.


查这儿

在申请扩容一台KV了。升级的事,得领导点头,领导要求无风险。 :upside_down_face:


top sql看起来没有特别可疑的,都是平常那些。

是的,这台服务器的IO特别高。请问要查它什么?

你这个明显是10点40这个时间点有慢sql或者耗CPU、内存的sql在执行。可以在流量可视化里面看看,选取那个时间段。 读取或者写入的量看看哪个线条最明显
image

是资源争用,io拉满了吧


请问是看这里吗?具体怎么看的?

具体是什么资源在争用?我以为是热点相关问题导致某个KV出现IO拉满的。

只有这个最明显。那就把这个表名 放到慢日志查询里面搜索这个表的相关查询。看看是哪个sql。
但是你这个是6小时一直很长的,感觉不会是这个。你选取一下10点35-45这个时间看看。看看哪个是突出的。读取和写入都看看有没有突出比较亮的


看起来还是那个表?

看样子不是了,你单独选择读取和写入量。不要所有的看看,如果这个不是,那就说明这个消耗cpu的sql 读取写入的数据量不大。比如加索引,分析表这类的。从这个可视化不好找。在慢查询里面找找看了只能

  1. 硬件问题排查
  2. 热点问题
    • 写偏斜排查
    • 读偏斜排查

看看同时间是否有其他的节点,也是这么高的 IO?
如果硬件配置是一致的,可以参考上面顺序排查问题点

这看着也不是时间都耗在等待上吧,主要的时间还是耗在Coprocessor执行处理上