DBA 减负捷径:拍个 CT 诊断集群热点问题 | TiDB 4.0 新特性前瞻

Posted PingCAP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DBA 减负捷径:拍个 CT 诊断集群热点问题 | TiDB 4.0 新特性前瞻相关的知识,希望对你有一定的参考价值。



古代,医者看病讲究「望、闻、问、切」,通过病人的外部综合表现对病症做出判断。现代,CT 的发明使得人们可以使用 X 光穿透身体各组织内部,将整体的情况以图像的方式展现出来,医生可以根据这个信息快速地排查问题。CT 的出现不仅将诊断的效率提升到了新的高度,也给客观描述身体状态提供了一个标准,是医学史上重要的里程碑。

一个工作中的 TiDB 集群如果只有个别节点非常繁忙,而其他节点相对比较空闲,我们就称这个集群存在热点(问题)。TiDB 作为一个分布式数据库,虽然会自动且动态的进行数据的重新分布以到达尽可能的均衡,但是有时候由于业务特性或者业务负载的突变,仍然会产生热点,这时候往往就会出现性能瓶颈。

在 TiDB 4.0 版本之前,如果我们要诊断集群中的读写热点问题,一般也需要经过「望、闻、问、切」,通过集群的对外表现逐渐摸清热点问题所在:

  • 检查各组件 CPU 和 IO 是否均衡;

  • 根据集群热区域列表逐一检查热点表;

  • 通过表进一步分析业务逻辑查看热点成因;

  • ……

整个过程比较繁琐,涉及到不同的工具和组件,需要一定的学习成本,而且整个结果也很不直观。

Google 在 Bigtable 的云服务中提供了一个可视化的工具:Key Visualizer,它可以优雅的解决热点排查的问题。在 4.0 版本中 TiDB 也实现了 Key Visualizer 功能。现在,我们可以很轻松地给集群拍个 “CT”,快速直观地观察集群整体热点及流量分布情况,如下图所示:


为什么会有热点?


一个集群中只有少数节点在卖力工作,其他节点在划水,这个现象听上去像是 TiDB 的 bug,其实不然,它是一种 feature

以上是关于DBA 减负捷径:拍个 CT 诊断集群热点问题 | TiDB 4.0 新特性前瞻的主要内容,如果未能解决你的问题,请参考以下文章

给你的Java程序拍个片子吧:jstack命令解析

给你的Java程序拍个片子吧:jstack命令解析

为代码减负之<三>视图(SQL)

冠状动脉CT造影诊断,冠状动脉CT血管成像(错层严重),麻烦帮忙看下

DB诊断日 | 99%的DBA都想深入了解的MySQL故障

DBbrain诊断日 | DBA休假,数据库CPU使用率过高怎么办?