帮你快速理解、总结文档立即下载

使用数据路负载分析

最近更新时间:2026-07-17 09:17:00

我的收藏

操作场景

当您的数据库实例出现性能抖动、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 持续超过此线时,说明数据库负载偏高。
图表切换:支持在柱状图折线图之间切换。柱状图通过颜色堆叠展示各维度的负载占比;折线图以独立折线展示各维度的负载变化趋势。
辅助指标
在趋势图右上方提供辅助指标配置,帮助关联分析数据库负载:
vCPU 参考线:独立复选框,勾选后在图表中以虚线标注实例的最大 vCPU 数,当 AAS 持续超过此线时说明数据库负载偏高。
辅助指标下拉框:支持选择 Connected Threads(已连接线程数)和 CPU 利用率,可多选叠加显示。
连接预警线:当勾选 Connected Threads 且实际连接数达到 max_connection 的56%以上时,图表中将自动展示一条连接预警线(值为 max_connection 的80%)。这是因为连接数较低时展示预警线会将图表压扁,影响可读性,因此仅在连接数趋近预警值时才显示,帮助您提前识别连接数即将打满的风险。
维度切换
在趋势图左上方的下拉选择器中切换分析维度:
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. 设置自动刷新频率(支持15秒、30秒等),页面将按设定频率自动更新数据。
5. 根据需要选择子页签进行操作:
实时会话:查看当前 SQL 统计信息(按执行次数、总耗时等维度统计 SQL 模板)和会话统计信息(按用户维度统计总连接数、活跃数、平均执行时间)。支持对 SQL 执行 SQL 优化和限流操作。
SQL 限流任务:查看和管理 SQL 限流任务。功能与独立实时会话页面的 SQL 限流功能一致,详细操作请参见 创建 SQL 限流任务
Kill 会话任务:查看和管理 Kill 会话任务。功能与独立实时会话页面的 Kill 会话功能一致,详细操作请参见 Kill 会话
说明:
此处的实时会话管理功能与独立的 诊断优化 > 实时会话 页面复用相同的核心能力,主要区别在于:本页面内嵌在负载分析图表下方,方便在排查负载问题时直接进行会话管控;独立实时会话页面还额外包含热点更新保护功能。

查看 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个数据库实例开启性能综合分析。如果您需要监控更多实例,请联系腾讯云技术支持申请增加配额。