前提条件
- 仅限来源为天翼云RDS的MySQL数据库。
- 实例规格必须在2C4G以上。
- 实例的地域/资源池为:华东1、上海36、西南1、华北2、华南2、长沙42、青岛20、南昌5,其他资源池支持正在陆续扩充支持中。
- 仅支持MySQL 8.0以上版本。
- 已录入DMS中,且实例状态正常的数据库实例。
注意事项
- 当前支持历史近7天的性能数据存储。
- 建议提前手工开启performance-schema。如何开启performance-schema,请参照performance-schema开关,设置performance-schema相关参数。
- 启用性能洞察时,若用户开启performance-schema,则等待事件来自events_waits_current;若用户关闭performance-schema,则等待事件来自processlist。
- 若用户开启performance-schema,性能洞察会自动调整performance-schema-consumer-events-waits-current、performance-schema-consumer-global-instrumentation、performance-schema-consumer-thread-instrumentation、performance-schema-instrument参数。
- 若SQL文本出现截断,请调整实例的max_digest_length、performance_schema_max_digest_length、performance_schema_max_sql_text_length参数。
注意修改performance-schema参数,需要重启数据库实例,建议您在业务低峰期操作,并确保应用程序具有重连机制。
操作步骤
- 登录数据管理服务。
- 在左侧导航栏中,点击运维管理 > 实例排行 ,进入实例排行界面。
- 在健康排行区域,点击目标实例名称进入详情页面,在详情页上方点击性能洞察页签,进入性能洞察页面。
- 在性能洞察页面,点击开启性能洞察按钮开启性能洞察功能。
关闭性能洞察
- 登录数据管理服务。
- 在左侧导航栏中,单击运维管理 > 实例排行 ,进入实例排行界面。
- 在健康排行区域,点击目标实例名称进入详情页面,在详情页上方点击性能洞察页签,进入性能洞察页面。
- 在性能洞察页签,单击右上角的关闭性能洞察。
功能介绍
性能洞察服务会收集、聚合和显示实例的活跃会话信息。性能洞察根据数据库实例的 vCPU(虚拟 CPU)内核数,来决定最大 vCPUs 的值。
如果数据库负载持续高于最大 vCPUs阈值线,并且主要等待状态为 CPU,则表示 CPU 过载。如果长时间有大量活跃会话处于任何等待状态,无论数据库负载是否超过最大 vCPUs 线,则表示当前实例存在资源瓶颈或资源争用问题。
若出现了上述的情况,可能需要对TOP请求的来源进行限流,并优化高 CPU 负载的TOP SQL,或对实例进行CPU、内存、IO的扩容。
性能趋势
性能趋势展示用户选择时间范围的整体平均活跃会话数趋势,右侧展示TOP 3的等待事件和最大vCPUs阈值,选择框可以拖动和伸缩,在下方区域查看具体的平均活跃会话数详细信息。
平均活跃会话数(AAS)
AAS趋势
趋势图表示上方性能趋势选择框时间范围的平均活跃会话数柱状图信息,支持等待事件、来源、数据库、用户、SQL 5个维度的切换查看,右侧的维度信息支持单选查看,默认展示等待事件维度的AAS趋势。
AAS列表
列表展示AAS趋势对应的等待事件、来源、数据库、用户、SQL维度对象信息,SQL维度的对象信息展示SQL模板,每个SQL模板可以展开查询对应的SQL明细信息,SQL维度的SQL模板性能字段支持扩展,点击设置按钮,可选择更多字段,每个维度的对象支持单选查看对应的AAS趋势。
性能监控指标
展示上方性能趋势选择框时间范围的关键性能指标。
平均活跃会话计数算法
概述
平均活跃会话用于评估在一段时间内,实例中平均有多少个会话同时处于活动状态。选定的时间周期越长,统计的平均活跃会话数时间颗粒度越粗。
计算方式
性能洞察每3秒会对实例进行活跃会话信息的采集,平均活跃会话数=特定时间段内的会话总数/特定时间段内的采集次数。
示例如下,在采集3次活跃会话快照信息的时间间隔内,平均有7个会话处于活动状态。
采集序列 | 活跃会话数 | 平均活跃会话数 | 计算过程 |
---|---|---|---|
1 | 6 | 6 | 会话总数6/采集次数1 |
2 | 0 | 3 | 会话总数6/采集次数2 |
3 | 15 | 7 | 会话总数21/采集次数3 |
MySQL等待事件说明
概述
等待事件表示当前SQL 语句正在等待特定事件,事件结束后SQL才能继续运行,等待事件说明了SQL运行过程中受到阻塞的具体阶段,是衡量数据库负载的一个重要参考维度。
总体来说,活跃会话的SQL在执行过程中,会处于CPU执行或资源等待状态,比如等待写入binlog,等待数据文件扫描等。
在优化数据库整体负载时,常见的场景是少量的SQL模板在等待某些资源上花费了大量的时间,通过性能洞察可以对TOP等待的对象进行针对性识别、分析和优化。
有关MySQL 等待事件的信息,请参阅 MySQL 文档中的等待事件摘要信息。
主要等待事件说明
等待事件 | 摘要说明 |
---|---|
CPU | 活跃会话数一直高于 vCPU 的数量 |
wait/io/file/xxx | 等待文件操作完成的时间(例如,对 fwrite() 的调用) |
wait/io/socket/xxx | 监听套接字等待连接 |
wait/io/table/xxx | 表I/O操作等待 |
wait/lock/metadata/xxx | 等待表锁定操作 |
wait/lock/table/xxx | 等待表锁定操作 |
wait/synch/cond/xxx | 不同线程的条件访问存在资源冲突 |
wait/synch/mutex/xxx | 互斥对象控制资源访问,防止并发冲突 |
wait/synch/prlock/xxx | 优先级读写锁,控制资源访问优先级 |
wait/synch/rwlock/xxx | 读写锁控制资源访问,防止并发冲突 |
wait/synch/sxlock/xxx | 同一对象的DML操作争用 |
performance-schema开关
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域和项目。
- 选择“数据库 > 关系数据库MySQL版”,进入关系数据库MySQL版控制台。
- 在“实例管理”页面,选择指定的实例,单击实例名称,进入实例信息展示页面。
- 选择“参数设置”页面,查看您可以修改的参数列表,界面上展示了每个参数的参数名、修改后是否需要重启、当前值、允许值、描述。
- 根据业务需求修改相关参数,点击页面上方的的“保存”按钮,弹出确认框,点击“确定”按钮,提交修改参数任务。
- 可以在参数设置页面“历史记录”中查看参数修改结果,修改参数是否成功,以“历史记录”页面显示结果为准。
更多详细信息请参见参数设置。