使用数据路负载分析

最近更新时间:2026-04-28 11:28:12

我的收藏

操作场景

当您的数据库实例出现性能抖动、SQL 响应变慢、锁等待超时等问题时,需要快速定位性能瓶颈所在。性能综合分析功能基于 MySQL Performance Schema(PFS)实时采集数据库活跃会话、等待事件、SQL 执行统计和锁阻塞关系等多维度性能数据,通过 AAS(Average Active Sessions,平均活跃会话数)指标,以可视化方式直观呈现数据库负载状况,帮助您高效诊断和优化数据库性能问题。

使用限制

限制项
限制说明
支持的数据库类型
仅支持云数据库 MySQL 和 TDSQL-C for MySQL 版。
数据库版本要求
MySQL 8.0及以上版本。
功能开通限制
该功能需申请开通白名单后使用,未开通时相关入口不可见。请 提交工单 申请,需提供账号 UIN。
PFS 总开关
数据库实例的 performance_schema 系统变量必须为 ON
实例配额
公测期间,每个主账号默认最多可开启10个实例的性能综合分析。
数据保留时长
原始采集数据保留7天。

注意事项

开启性能综合分析功能会在数据库实例上启用 Performance Schema 的相关 Consumers 和 Instruments 配置,可能对实例性能产生微小影响。建议在业务低峰期开启。
关闭性能综合分析功能后,系统将停止对该实例的 PFS 数据采集,历史数据仍可在数据保留期内查询。

前提条件

已创建云数据库 MySQL 实例或 TDSQL-C MySQL 版实例,且实例版本为8.0及以上。
实例的 performance_schema 系统变量已设置为 ON

操作步骤

开启性能综合分析

1. 登录 DBbrain 控制台
2. 在左侧导航栏,选择实例管理
3. 在目标实例(MySQLTDSQL-C MySQL 版)操作列单击配置
4. 请仔细阅读开启数据库负载分析功能的说明及注意事项,确认无误后,开启数据库负载分析,单击确定

说明:
开启操作需要数据库实例满足 PFS 支持条件(performance_schemaON 且版本 ≥ 8.0)。
如果实例不满足条件,系统将提示具体原因:版本过低或 PFS 总开关未开启。
开启过程中系统会自动配置 Performance Schema 的 consumers 和 instruments,整个过程通常在几秒内完成。
开启负载分析功能对数据库性能有少量影响,根据公开资料,约在2%~10%之间,开启后请及时关注性能变化。

查看数据库负载分析

开启性能综合分析后,进入数据库负载分析页面。数据库负载分析页面展示实例的 AAS 负载趋势图和 Top 指标排名列表。
1. 登录 DBbrain 控制台
2. 在左侧导航栏,选择全链路分析 > 性能综合分析
3. 选择数据库负载分析页签。
4. 在页面顶部选择数据库类型(MySQLTDSQL-C for MySQL)和目标实例。
5. 在页面顶部选择查询的时间范围。
时间选项
说明
数据粒度
近1分钟
查看最近1分钟的实时数据。
秒级粒度
近1小时
查看最近1小时的数据。
分钟级粒度
近1天
查看最近1天的数据。
5分钟级粒度
自定义时间范围
最大支持选择近7天内的数据。
系统根据时间跨度自动选择粒度
系统会根据查询的时间跨度自动选择最佳数据粒度。
时间跨度
自动粒度
< 10分钟
秒级(1秒)
10分钟 ~ 5小时
分钟级(1分钟)
5小时 ~ 24小时
5分钟级
≥ 24小时
小时级
6. 查看负载趋势图和 Top 指标排名列表。

趋势图说明
负载趋势图以柱状图或折线图的形式展示 AAS 负载随时间的变化趋势。
Y 轴:AAS 值(平均活跃会话数)。
X 轴:时间轴,按所选粒度显示时间标签。
vCPU 参考线:图表中以虚线标注实例的最大 vCPU 数,作为负载参考基线。当 AAS 持续超过此线时,说明数据库负载偏高。
图表切换:支持在柱状图折线图之间切换。柱状图通过颜色堆叠展示各维度的负载占比;折线图以独立折线展示各维度的负载变化趋势。
维度切换
在趋势图左上方的下拉选择器中切换分析维度:
Waits:按等待事件类型拆分负载。常见的等待事件包括:
wait/io/table/sql/handler:表 IO 等待
wait/synch/mutex/innodb/buf_pool_LRU_list_mutex:InnoDB 缓冲池互斥锁
wait/synch/sxlock/innodb/hash_table_locks:InnoDB 哈希表锁
wait/io/socket/sql/client_connection:客户端连接 IO
wait/io/file/innodb/innodb_log_file:InnoDB 日志文件 IO
CPU:线程正在消耗 CPU(非等待状态)
User:按数据库用户名拆分负载。
SQL:按 SQL 摘要模板拆分负载。
Host:按客户端主机地址拆分负载。
DB:按数据库名拆分负载。
每个维度的趋势图展示 Top 10 维度值的负载占比,超出 Top 10 的部分合并为 others 显示。
Scope 过滤
当您需要聚焦分析某个特定维度值时,可以在 Top 指标列表中单击某一行数据,负载趋势图将自动添加 Scope 过滤条件,仅展示该维度值的负载数据。

例如:
单击 TOP DB 中的某个数据库名,趋势图将显示 Scope to : processlist_db : {数据库名} 过滤标签,仅展示该数据库的负载。
单击 TOP Users 中的某个用户名,趋势图将显示 Scope to : processlist_user : {用户名} 过滤标签。
单击 TOP Hosts 中的某个主机地址,趋势图将显示 Scope to : processlist_host : {主机地址} 过滤标签。
单击过滤标签上的 x 可取消过滤,恢复查看全量数据。支持同时叠加多个不同维度的过滤条件。

查看锁竞争分析

1. 登录 DBbrain 控制台
2. 在左侧导航栏,选择全链路分析 > 性能综合分析
3. 选择数据库负载分析页签。
4. 在页面顶部选择数据库类型(MySQLTDSQL-C for MySQL)和目标实例。
5. 在页面顶部选择查询的时间范围。
6. 查看负载趋势图下方展示的锁竞争分析列表。

展示所选时间范围内存在锁阻塞的时间段列表。
字段
说明
选择快照窗口
通过时间选择器指定要查看锁数据的时间段。
选择快照时间点
存在锁阻塞数据精确时间点。
选中某个快照时间点后,展示该时刻的锁阻塞详情。
参数名
说明
阻塞线程 ID
持有锁并阻塞其他线程的线程 ID(即锁的持有者)。
连接 ID
该线程对应的数据库连接 ID。
事务 ID
该线程当前所在事务的 ID。
采集时间
该条锁竞争记录的采集时间点。
用户
发起该连接的数据库用户名。
主机
发起该连接的客户端主机 IP 地址。
阻塞线程数
当前被该线程阻塞的其他线程数量(红色高亮表示存在阻塞)。
等待时间(s)
被阻塞线程等待锁释放的时间,单位为秒。
等待状态
被阻塞线程当前的等待状态(如 statistics 表示处于统计/查询优化阶段)。
SQL
该线程正在执行或最后执行的 SQL 语句。

查看 Top 指标排名列表

1. 登录 DBbrain 控制台
2. 在左侧导航栏,选择全链路分析 > 性能综合分析
3. 选择数据库负载分析页签。
4. 在页面顶部选择数据库类型(MySQLTDSQL-C for MySQL)和目标实例。
5. 在页面顶部选择查询的时间范围。
6. 查看负载趋势图下方展示 Top 指标排名列表。
TOP SQL

展示按 AAS 负载降序排列的 Top SQL 列表。
字段
说明
负载
该 SQL 模板的 AAS 负载值,以负载条形图直观展示。
SQL
SQL 摘要模板文本。
在 TOP SQL 列表中,支持通过搜索框输入关键词进行模糊查询(不区分大小写),快速过滤目标 SQL。
单击某条 SQL 后方的复制查看按钮,可以复制 SQL 文本或查看 SQL 详情面板。SQL 详情面板包含两个页签:
SQL 文本:展示该 SQL 摘要模板对应的原始 SQL 文本列表(最多25条),每条原始 SQL 按所选维度展示负载分布。
SQL 指标:以折线图展示该 SQL 的29个性能指标时序趋势,包括:
指标类型
指标
说明
Per-Call(每次调用均值)
Avg latency (ms)/call
每次调用平均延迟(毫秒)。
Rows examined/call
每次调用扫描行数。
Rows sent/call
每次调用返回行数。
Rows affected/call
每次调用影响行数。
Lock time (ms)/call
每次调用锁等待时间(毫秒)。
Created tmp disk tables/call
每次调用创建磁盘临时表数。
Created tmp tables/call
每次调用创建临时表数。
Select full join/call
每次调用全表 JOIN 次数。
Select scan/call
每次调用全表扫描次数。
Sort merge passes/call
每次调用排序合并次数。
Sort rows/call
每次调用排序行数。
Sort range/call
每次调用排序范围次数。
Select range check/call
每次调用范围检查次数。
Sort scan/call
每次调用排序扫描次数。
Per-Second(每秒速率)
Calls/sec
每秒执行次数。
Rows examined/sec
每秒扫描行数。
Rows sent/sec
每秒返回行数。
Rows affected/sec
每秒影响行数。
Lock time (ms)/sec
每秒锁等待时间(毫秒)。
Created tmp disk tables/sec
每秒创建磁盘临时表数。
Created tmp tables/sec
每秒创建临时表数。
Select full join/sec
每秒全表 JOIN 次数。
Select scan/sec
每秒全表扫描次数。
Sort merge passes/sec
每秒排序合并次数。
Sort rows/sec
每秒排序行数。
Sort range/sec
每秒排序范围次数。
Select range check/sec
每秒范围检查次数。
Sort scan/sec
每秒排序扫描次数。
复合指标
Aae
Average Active Executions,反映 SQL 的并发执行强度。计算公式为 Calls/sec x Avg latency (ms)/call / 1000
TOP Waits
展示按 AAS 负载降序排列的 Top 等待事件列表。
字段
说明
负载
该等待事件的 AAS 负载值。
等待事件
等待事件名称,如 wait/io/table/sql/handlerwait/synch/sxlock/innodb/hash_table_locks 等。
单击某个等待事件行,负载趋势图将自动 Scope 到该等待事件,便于分析其负载随时间的变化趋势。
TOP Hosts
展示按 AAS 负载降序排列的 Top 客户端主机列表。
字段
说明
负载
该主机的 AAS 负载值。
主机
客户端主机 IP 地址。
单击某个主机行,负载趋势图将自动 Scope 到该主机地址,便于分析其负载随时间的变化趋势。
TOP Users
展示按 AAS 负载降序排列的 Top 数据库用户列表。
字段
说明
负载
该用户的 AAS 负载值
用户
数据库用户名
单击某个用户行,负载趋势图将自动 Scope 到该用户,便于分析其负载随时间的变化趋势。
TOP DB
展示按 AAS 负载降序排列的 Top 数据库列表。
字段
说明
负载
该数据库的 AAS 负载值
数据库
数据库名称
单击某个数据库行,负载趋势图将自动 Scope 到该数据库,便于分析其负载随时间的变化趋势。

关闭性能综合分析

如果您不再需要使用性能综合分析功能,可以关闭该实例的 PFS 数据采集:
1. 登录 DBbrain 控制台
2. 在左侧导航栏,选择实例管理
3. 在目标实例(MySQLTDSQL-C MySQL 版)操作列单击配置
4. 关闭数据库负载分析按钮,单击确定
说明:
关闭性能综合分析后,系统将停止对该实例的 PFS 数据采集。

后续步骤

如果在负载趋势中发现 AAS 持续超过 vCPU 参考线,建议进入 SQL 分析页面查看慢 SQL 和全量 SQL 分析详情,找到具体的问题 SQL 并进行优化。
如果发现锁竞争严重,建议查看锁竞争分析中的阻塞详情,定位持有锁的事务和 SQL,优化事务逻辑或缩短事务执行时间。
如果发现某个主机或用户产生的负载异常偏高,建议检查对应应用服务的连接池配置和业务逻辑。

常见问题

开启数据库负载分析提示“实例 PFS 总开关未开启”怎么办?

这说明您的数据库实例的 performance_schema 系统变量当前为 OFF。您需要先在数据库实例的参数配置中将 performance_schema 设置为 ON,该参数修改需要重启实例才能生效。

开启数据库负载分析提示“当前仅支持8.0及以上版本”怎么办?

数据库负载分析功能依赖 MySQL 8.0及以上版本的 Performance Schema 增强特性(如 data_lock_waits 表等)。如果您的实例版本低于8.0,建议升级数据库版本后再使用该功能。

开启数据库负载分析对数据库性能有影响吗?

开启数据库负载分析会在数据库实例上启用 Performance Schema 的8个 Consumers 和相关 Instruments 配置。在大多数场景下,对实例性能的影响低于 1%。如果您对性能敏感,建议在业务低峰期开启,并观察一段时间确认无影响。

等待事件中的 CPU 表示什么?

当数据库线程处于活跃状态(非 Sleep)但没有等待任何 IO、锁或同步事件时,系统将该线程的等待事件标记为 CPU。这表示线程正在消耗 CPU 资源执行计算任务,而不是在等待外部资源。

为什么负载趋势图中某些时间段没有数据?

该时间段内数据库没有活跃会话(所有连接处于 Sleep 状态)。

配额不足(No quota for pfs instance)怎么办?

每个主账号默认最多可同时对10个数据库实例开启性能综合分析。如果您需要监控更多实例,请联系腾讯云技术支持申请增加配额。