TiDB Dashboard Top SQL 页面

TiDB Dashboard 的 Top SQL 功能允许你可视化地监控和探索数据库中各个 SQL 语句在执行过程中的 CPU 开销情况,从而对数据库性能问题进行优化和处理。Top SQL 持续收集各个 TiDB 及 TiKV 实例每秒的实时 CPU 负载等数据(按 SQL 类型分别统计),并存储至多 30 天。你可以通过 Top SQL 展示的图表及表格快速分析某个 TiDB 或 TiKV 实例在某段时间中高 CPU 负载是来自于哪些 SQL 语句。

Top SQL 具有以下功能:

  • 通过图表及表格,可视化地展示 CPU 开销最多的 5 类 SQL 语句。
  • 展示每秒请求数、平均延迟、查询计划等详细执行信息。
  • 支持统计所有正在执行、尚未执行完毕的 SQL 语句。
  • 支持查看集群中指定 TiDB 及 TiKV 实例的情况。

推荐适用场景

Top SQL 适用于分析性能问题。以下列举了一些典型的 Top SQL 适用场景:

  • 通过监控图发现集群中有个别 TiKV 实例的 CPU 非常高,期望了解 CPU 热点来自于哪些 SQL 语句,以便对其进行优化、更好地利用上分布式资源。
  • 集群整体 CPU 占用率非常高、数据库查询缓慢,期望快速知悉目前哪些 SQL 语句开销了最多的 CPU 资源,以便对它们进行优化。
  • 集群整体 CPU 占用率突然发生了显著变化,期望了解变化前后主要的 SQL 资源开销区别。
  • 分析集群当前最消耗资源的 SQL 语句情况,希望对它们进行优化以便降低硬件开支。

Top SQL 不能用于解答与性能无关的问题,例如数据正确性或异常崩溃问题。

当前 Top SQL 仍然处于早期阶段,功能正在持续加强。以下列举了一些目前暂不支持的场景,供参考:

  • 暂时不支持分析 Top 5 以外 SQL 语句的开销情况(如多业务混合时)。
  • 暂时不支持按 User、Database 等不同维度分析 Top N SQL 语句的开销情况。
  • 暂时不支持分析并非由于 CPU 负载高导致的数据库性能问题,例如锁冲突。

访问页面

你可以通过以下任一方式访问 Top SQL 页面:

启用 Top SQL

注意

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

Top SQL 开启后会对集群性能产生轻微的影响(平均 3% 以内),因此该功能默认关闭。你可以通过以下方法启用 Top SQL:

  1. 访问 Top SQL 页面
  2. 点击打开设置 (Open Settings)。在右侧设置 (Settings) 页面,将启用特性 (Enable Feature) 下方的开关打开。
  3. 点击保存 (Save)。

你仅能看到开启功能之后的 CPU 负载细节情况,在开启功能之前的 CPU 负载细节无法在界面上呈现。另外,数据有至多 1 分钟左右的延迟,因此你可能需要等待片刻才能看到数据。

除了通过图形化界面以外,你也可以配置 TiDB 系统变量 tidb_enable_top_sql 来启用 Top SQL 功能:

 

SET GLOBAL tidb_enable_top_sql = 1;

使用 Top SQL

以下是 Top SQL 的常用步骤:

  1. 访问 Top SQL 页面

  2. 选择一个你想要观察负载的具体 TiDB 或 TiKV 实例。

    如果你不知道要观察哪一个 TiDB 或 TiKV 实例,可以选择任意一个实例。在集群 CPU 开销非常不均衡的情况下,你可以首先通过 Grafana 中的 CPU 监控来确定具体期望观察的实例。

  3. 观察 Top SQL 呈现的 Top 5 图表及表格。

    柱状图中色块的大小代表了 SQL 语句在该时刻消耗的 CPU 资源的多少,不同颜色区分了不同类型的 SQL 语句。大多数情况下,你都应该关注图表中相应时间范围内 CPU 资源开销较大的 SQL 语句。

  4. 点击表格中的某一个 SQL 语句后,可以展开查看该语句不同执行计划的执行情况,例如 Call/sec(平均每秒请求数)、Scan Indexes/sec(平均每秒扫描索引数)等。

  5. 基于这些初步线索,进一步在 SQL 语句分析慢查询界面中了解该 SQL 语句开销大量 CPU 资源、或扫大量数据的详细原因。

除此以外:

  • 你可以在时间选择器中调整时间范围,或在图表中框选一个时间范围,来更精确、细致地观察问题。更小的时间范围将能提供细节更丰富的数据,数据最高精度可达 1 秒。

  • 如果图表中显示的数据已过时,你可以点击刷新 (Refresh) 按钮,或在刷新 (Refresh) 下拉列表中选择自动刷新。

停用 Top SQL

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

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

除了通过图形化界面以外,你也可以配置 TiDB 系统变量 tidb_enable_top_sql 来停用 Top SQL 功能:

 

SET GLOBAL tidb_enable_top_sql = 0;

常见问题

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

请参见 TiDB Dashboard FAQ

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

该功能对集群性能有轻微影响。根据我们的测算,该功能对集群的平均性能影响小于 3%。

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

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

4. 界面中显示的其他语句(Other Statements)是什么意思?

其他所有非 Top 5 语句产生的 CPU 开销或执行情况都会被统计在该项中。你可以基于这一项了解 Top 5 的 SQL 语句开销在整体所有 SQL 语句的 CPU 开销中的比例。

5. Top SQL 展示的 CPU 开销总和与进程的实际 CPU 开销是什么关系?

它们之间有很强的相关性,但不完全一致。以 TiKV 为例,TiKV 的 CPU 开销还可能来自于其他副本的数据同步写入,这些开销不会被计入 Top SQL。但总的来说,Top SQL 中开销比例比较大的 SQL 语句实际的 CPU 资源开销也确实会更大。

6. Top SQL 图表的纵坐标是什么意思?

代表消耗 CPU 资源的多少。消耗资源越多的 SQL 语句,该值越大。在绝大多数情况下,你都不需要关心纵坐标具体数值的含义。

7. 还没有执行完毕的 SQL 语句会被统计到吗?

会。Top SQL 图表上所展示的每一时刻 CPU 开销比例即为这一时刻所有正在运行的 SQL 语句的 CPU 开销情况。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TiDB Dashboard 和 Grafana 都是用于监控 TiDB 集群的工具,它们可以帮助用户实时地监控集群的运行情况,包括各个组件的状态、性能指标、慢查询等等。下面简单介绍一下这两个工具的特点和用法。 1. TiDB Dashboard TiDB Dashboard 是 PingCAP 公司官方推出的一款 TiDB 集群监控工具,它提供了直观、易用的 Web 界面,可以帮助用户监控 TiDB 集群的各个组件,包括 TiDB、TiKV、PD 等。通过 Dashboard,用户可以查看集群的概览信息、性能指标、慢查询分析等,同时也可以进行一些基本的配置和管理操作。 使用 TiDB Dashboard 需要在集群中启用 TiDB Monitoring 组件,然后访问 Dashboard 的 URL 地址即可。具体的使用方法可以参考官方文档:https://docs.pingcap.com/zh/tidb/stable/dashboard-overview 2. Grafana Grafana 是一款开源的数据可视化工具,它支持多种数据源,并提供了丰富的可视化组件和面板,可以帮助用户将各种数据以图表、表格等形式展示出来。对于 TiDB 集群监控,Grafana 通常与 Prometheus 数据库配合使用,通过采集 TiDB 集群的各种监控指标,然后将其展示在 Grafana 的面板上。 使用 Grafana 监控 TiDB 集群需要先配置好 Prometheus 数据库,并将其与 Grafana 进行关联。然后需要导入 TiDB 集群监控面板,这些面板可以通过 Grafana 官方提供的仓库进行获取。导入面板后即可开始监控 TiDB 集群的各种指标,例如 QPS、TPS、CPU 利用率、内存使用、磁盘 IO 等等。具体的使用方法可以参考官方文档:https://docs.pingcap.com/zh/tidb/stable/grafana-overview
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天读点书学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值