请问如何定位tidb热点问题

目前看监控发现有一个节点的Unified read pool CPU和Raft store CPU
明显高于其它的节点。

请问观察流量可视化图,如何确认是哪个表或是不是存在热点问题呢?

我这里截取了1小时和一周的,读取字节数和写入字节数图。




鼠标移上去就能看到是哪个表了

看热力图

  • 垂直热点 :表明某个Key Range频繁访问
  • 水平热点 :表明某个时间点全表扫描
1 个赞

看表分布式键

请问从这图上看,存在热点问题吗?

越亮读写越大。

说句心里话,虽然从小学就学习看图说话,但是这tidb的官方热力图解释和图表,压力看不明白。
什么叫暗什么叫明? 什么X轴Y轴,我只知道X轴表示的时间。

另外官方文档里就只发那几张示例图,与实际生产环境的图很少有匹配的。不知道有多少人能看图知道执点分布情况。

比如上图,绿色方框里的方块图都是带颜色的都是亮色啊,能说明什么问题呢?那说明存在热点,能说明一周内全天24小时都有热点吗?

言简意赅呀

1 个赞

要结合上面选择的指标,明暗可以认为是流量大小,越亮流量越大,越暗流量越小,完全黑色代表没有数据流量。x轴标识时间爱你没问题,y轴表示数据存储位置。假设只有一个表,存到2个region里,那y轴就会有两个值。假设1点从region A里读取了10M数据,之后没有读取或者读取远小于10M,2点读取了10M数据,那就是第一个示例,明暗交替。

不是那个亮色的意思,是亮度越高,流量越大。感觉你截图的位置类似这个示例。那条线所读取的数据,就是需要关注的。

看到官方有个热点问题处理的部分,也可以参考一下。 这个应该讲的相对清楚一些。
https://docs.pingcap.com/zh/tidb/stable/troubleshoot-hot-spot-issues/#tidb-热点问题处理

感谢你的分享

:handshake:共同成长,共同进步

这些图确实挺难判断出来

用random可以减少热点

看慢sql分析?

这样试一下:1. 鼠标悬停热力图亮色区域,直接显示对应表和 Region;2. 结合 TiDB Dashboard 慢 SQL 面板,排查高频访问语句,快速锁定热点表~

Grafana里也有监控,不过这个好像定位不到具体哪个表。


看下对应的表region结合慢sql排查高频的语句啥的

把鼠标放到亮度最大的位置,会自动显示对应的表信息,同时,去慢sql中查找跟表相关的sql