TiDB Dashboard 实例性能分析 - 手动分析页面

该页面允许用户按需地一键收集 TiDB、TiKV、PD、TiFlash 各个实例的当前性能数据。收集到的性能数据可显示为火焰图或有向无环图形式。

通过这些性能数据,技术专家可以分析实例当前的 CPU、内存等资源消耗细节,帮助解决诸如当前 CPU 开销较高、内存占用较大、进程不明原因卡死等复杂问题。

启动分析后,TiDB Dashboard 将会收集当前一小段时间(默认 30 秒)的性能数据,因而只能用于分析集群当前正在面临的问题,对于当前已经不再复现的问题没有显著效果。若你想要收集或分析过去任意时刻性能数据,不希望每次都人工介入按需分析,请使用持续性能分析功能。

支持的性能数据

目前支持收集并分析以下性能数据:

  • CPU:TiDB、TiKV、PD、TiFlash 实例上各个内部函数的 CPU 开销情况

    ARM 环境中暂不支持对 TiKV 和 TiFlash 的 CPU 开销情况进行分析。

  • Heap:TiDB、PD、TiKV 实例上各个内部函数的内存占用开销情况

    从 v7.5 版本开始,支持获取 TiKV Heap Profile,并且需要 TiDB Dashboard 的运行环境中有 Perl 依赖,否则会报错。

  • Mutex:TiDB、PD 实例上各个处于等待状态的 Mutex 情况

  • Goroutine:TiDB、PD 实例上各个 Goroutine 的运行状态及调用栈情况

访问页面

可以通过以下两种方法访问实例性能分析页面:

  • 登录 TiDB Dashboard 后,在左侧导航栏中点击高级调试 (Advanced Debugging) > 实例性能分析 (Profile Instances) > 手动分析 (Manual Profiling):

    访问页面

  • 在浏览器中访问 http://127.0.0.1:2379/dashboard/#/instance_profiling(将 127.0.0.1:2379 替换为实际 PD 实例地址和端口)。

开始性能分析

在实例性能分析页面,选择至少一个目标实例和分析类型,确定性能分析时长(默认为 30 秒)。点击开始分析 (Start Profiling) :

开始分析

在已经启用了持续性能分析的集群上,手动性能分析不再可用。若要在启用了持续性能分析功能的集群上获取当前时刻的集群性能数据,请查看持续性能分析页面上最近一次的分析结果。

查看性能分析状态

开始性能分析后,可以看到实时性能分析状态和进度:

实时状态

性能分析会在后台运行,刷新或退出当前页面不会终止已经运行的性能分析任务。

下载性能数据

所有实例的性能分析都完成后,可点击右上角下载按钮 (Download Profiling Result) 打包下载所有性能数据:

下载分析结果

也可以点击列表中的单个实例查看其性能数据,或者悬浮到 ... 按钮上下载原始数据:

在线查看分析结果

查看历史性能数据

在性能分析页面下方,列出了你手动发起的性能分析历史。点击任意一行,即可查看其状态详情:

历史列表

关于状态详情页的操作,参见查看性能分析状态章节。