当前位置: 首页 > news >正文

TiDB Dashboard 实例性能分析 - 持续分析页面

注意

该功能面向数据库技术专家,建议非专家用户在 PingCAP 专业技术人员的指导下使用该功能。

持续性能分析功能可以持续地收集 TiDB、TiKV、PD 各个实例的性能数据。收集到的性能数据可显示为火焰图或有向无环图形式。

通过这些性能数据,技术专家可以分析实例的 CPU、内存等资源消耗细节,帮助解决诸如某一时刻 CPU 开销较高、内存占用较大、进程不明原因卡死等复杂问题。即使这类问题无法得到复现,技术专家也可以通过查看当时记录下的历史性能数据,还原问题现场,对当时的问题进行细致分析,从而有效缩短平均故障恢复时间。

与手动性能分析的区别

持续性能分析是手动性能分析的强化功能,它们都能用于收集和分析各个实例不同维度的性能数据,主要区别如下:

  • 手动性能分析仅在用户发起分析的时刻收集一小段时间(如 30 秒)的性能数据,持续性能分析开启后会持续收集性能数据。
  • 手动性能分析只能用于分析集群当前的问题,持续性能分析既可以用于分析集群当前问题,也可以分析集群历史问题。
  • 手动性能分析允许仅收集特定实例的特定性能数据,持续性能分析会收集所有实例的所有性能数据。
  • 由于持续性能分析存储了更多性能数据,因此会占用更大的磁盘空间。

支持的性能数据

所有手动性能分析中的性能数据都会在该功能中收集:

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

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

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

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

访问页面

你可以通过以下任一方式访问持续性能分析页面:

  • 登录后,在左侧导航栏中点击高级调试 (Advanced Debugging) > 实例性能分析 (Profiling Instances) > 持续分析 (Continuous Profiling)。

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

启用持续性能分析

注意

要使用持续性能分析,你需要使用 TiUP(v1.9.0 及以上版本)或 TiDB Operator(v1.3.0 及以上版本)部署或升级集群。如果你已经使用旧版本 TiUP 或 TiDB Operator 进行了集群升级,请参见 FAQ 进行处理。

从 TiDB v6.1.0 开始,持续性能分析默认处于开启状态。该功能启用后,TiDB Dashboard 会在后台持续收集性能数据,用户无需保持网页处于打开状态。后台收集的性能数据可设置保留时长,超过保留时长的性能数据将会被自动清理。

你可以通过以下步骤启用该功能:

  1. 访问持续性能分析页面。
  2. 点击打开设置 (Open Settings)。在右侧设置 (Settings) 页面,将启用特性 (Enable Feature) 下方的开关打开。设置保留时间 (Retention Period), 默认值为 3 天。
  3. 点击保存 (Save)。

查看集群当前性能数据

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

查看集群历史性能数据

你可以在列表中看到自启用该功能以来所有自动收集的性能数据:

下载性能数据

进入某次分析结果后,可点击右上角下载按钮 (Download Profiling Result) 打包下载所有性能数据:

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

停用持续性能分析

你可以通过以下步骤停用该功能:

  1. 访问持续性能分析页面。
  2. 点击右上角齿轮按钮打开设置界面,将启用特性 (Enable Feature) 下方的开关关闭。
  3. 点击保存 (Save)。
  4. 在弹出的关闭持续分析功能 (Disable Continuous Profiling Feature) 对话框中,点击确认 (Disable)。

 

常见问题

1. 界面上提示“集群中未启动必要组件 NgMonitoring”无法启用功能

请参见 TiDB Dashboard FAQ。

2. 该功能开启后对集群是否有性能影响?

依据测试结果,该功能开启后对集群的平均性能影响小于 1%。

3. 该功能目前是什么状态?

该功能是正式特性,在生产环境中可用。

相关文章:

  • Spring Boot 集成 Redis 配置 MyBatis 二级缓存
  • 9 二叉树-添加
  • SSM进阶-搭建Dubbo
  • STM32F103 CAN通讯实操
  • JAVA-----注释、字面量、关键字、制表符
  • numpy数组的变形、级联操作、聚合操作、常用的数学函数以及矩阵相关
  • ActiveMQ(二)
  • 某大学ipv6和ipv4结合的校园网规划设计
  • 【程序员表白大师】html七夕脱单必看源码制作
  • 车载VPA形象发展史:谁是第一个吃螃蟹的人?
  • 22.9.30 喜迎暑假多校联赛第二场(欢乐AK找回自信)ABDEFH
  • C++----智能指针
  • SpringMVC处理Ajax请求及处理和响应json格式的数据
  • 论文复现(一)
  • 龙芯+复旦微FPGA全国产VPX高速数据采集卡解决方案
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 0x05 Python数据分析,Anaconda八斩刀
  • HTTP 简介
  • iOS | NSProxy
  • Java IO学习笔记一
  • JavaScript对象详解
  • MySQL数据库运维之数据恢复
  • PHP 小技巧
  • React Transition Group -- Transition 组件
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • ucore操作系统实验笔记 - 重新理解中断
  • Vue学习第二天
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 回顾2016
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 排序(1):冒泡排序
  • 前端工程化(Gulp、Webpack)-webpack
  • 如何胜任知名企业的商业数据分析师?
  • 我的面试准备过程--容器(更新中)
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • # 计算机视觉入门
  • ###C语言程序设计-----C语言学习(6)#
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (C语言)fgets与fputs函数详解
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (附源码)php投票系统 毕业设计 121500
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • ?.的用法
  • @AliasFor注解
  • [ 转载 ] SharePoint 资料
  • [ACTF2020 新生赛]Include
  • [Angular] 笔记 20:NgContent