查看RDS MySQL监控指标

在进行数据库日常维护或处理数据库故障时,查看数据库相关的性能指标是必不可少的步骤。RDS MySQL的标准监控提供了丰富的性能监控指标,以及强大的诊断能力,能够及时发现数据库的异常并提供相应的治理方案。并且提供了常见数据库问题场景的诊断视图,帮助您快速定位问题。

功能说明

RDS MySQL升级了标准监控,融合了数据库自治服务DAS(Database Autonomy Service)的性能趋势,为用户提供更丰富的功能。

说明

数据库自治服务DAS是一种基于机器学习和专家经验实现数据库自感知、自修复、自优化、自运维及自安全的云服务,帮助您消除人工操作引发的服务故障,有效保障数据库服务的稳定、安全及高效。详情请参见数据库自治服务DAS简介

  • 自定义视图:标准监控提供更加丰富的性能监控指标,支持用于自定义视图,自主选择指标进行监控。

    说明

    监控指标对应的性能参数请参见性能参数表

  • 常见问题的诊断视图:提供了内存OOM诊断只读实例延迟诊断空间满问题诊断CPU抖动诊断大事务识别诊断等视图,您可以根据实际需要选择对应的诊断视图,快速定位问题。

  • 自动诊断:标准监控提供强大的诊断能力,能及时发现数据库实例产生的事件,并对其进行自动诊断,输出根因分析和建议。

  • 手动诊断:标准监控支持自主选择时段进行手动诊断。

查看标准监控

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏单击监控与报警

  3. 标准监控页面,根据需要选择标准视图自定义视图

    • 标准视图页签,选择查询时间,查看选定时间范围内的指标趋势和各类事件的统计信息。

      单击添加趋势对比,查看不同时间段内相同指标的性能趋势对比。添加趋势对比

      说明

      选择时间范围时,结束时间需晚于开始时间,且开始时间和结束时间的间隔不能超过30天。

      • 在事件统计区域,单击查看详情,可以跳转到性能事件页面,查看实例异常事件、优化事件和弹性伸缩事件的详细信息,包括计划执行、正在执行和已执行完成的事件。

      • 在指标趋势图区域:

        • 系统在经典视图的基础上提供了常见问题场景的诊断视图,您可以通过这些视图中主要指标的趋势,快速定位问题原因。

          当前提供的诊断视图包括:内存OOM诊断只读实例延迟诊断空间满问题诊断CPU抖动诊断大事务识别诊断,请根据实际需要选择对应的诊断视图。诊断视图的使用请参见诊断视图使用指南

          说明

          单击每个监控项后的指标查看各个监控项包含的指标。

          选择视图

        • 经典视图视图中,单击更多指标,可以选择需要查看性能趋势的指标。

        • 经典视图视图中,选择需要展示的事件级别,当检测到对应事件时,系统会在MySQL CPU/内存利用率会话连接的趋势图中展示这些事件。

          单击趋势图中的事件,在事件列表的事件详情中查看诊断结果。

          事件监控

        • 在任意指标趋势图中,使用鼠标拖拽选择一段时间,可以对选择时段进行诊断

        • 单击某个监控指标趋势图中的常见问题,查看造成该指标异常的常见原因。

        • 单击某个监控指标趋势图中的详情,放大该监控指标的趋势图,并且可以修改时间查看该监控指标不同时间的变化趋势。

    • 自定义视图页签,单击新增监控大盘,通过自定义监控大盘,查看需要进行监控的指标趋势。

      • 单击添加节点和指标监控,为监控大盘选择需要监控的节点和指标‪。

      • 您可以根据需要,选择不同的指标展示方式,合并展示分开展示

        • 当选择合并展示时,多个指标在同一个趋势图表进行展示。

        • 当选择分开展示时,单独展示每个指标的趋势图。

          • 通过图表布局,您可以设置每行显示监控指标趋势图的数量。

          • 单击某个监控指标趋势图中的详情,放大该监控指标的趋势图,并且可以修改时间查看该监控指标不同时间的变化趋势。

诊断视图使用指南

内存OOM诊断

内容OOM诊断

通过内存OOM诊断视图提供的监控指标,分析处理内存OOM(Out of Memory)问题。

  • Memory Usage

    • InnoDB Buffer Pool使用率不变,内存使用率长时间(例如超过7天)缓慢持续上涨时,可能是内存泄露导致。

    • 内存突然上涨,InnoDB Buffer Pool使用率不变时,可能是突增业务导致。

    • 内存和InnoDB Buffer Pool同步增长时,InnoDB Buffer Pool被逐步填充,属于正常情况。

  • Resident Memory:查看内存大小。

  • Open filesTemp File SizeTemp Disk TablesSort Rows:查看消耗内存的常见指标。

内存的增长和业务指标正相关,大部分情况下,导致内存突增的SQL还未运行完成就因OOM(Out of Memory)无法追溯,因此建议:

  • 检查业务日志,判断内存突增的原因。

  • 升级内存规格,并且开启SQL洞察和审计,在内存突增时查看SQL的执行时间来判断内存突增的原因。

只读实例延迟诊断

只读实例延迟诊断

通过只读实例延迟诊断视图提供的监控指标,分析处理只读实例延迟问题。

  • Active Session:查看是否有MDL锁阻塞的情况。

    通常大量数据的查询会让DDL无法获取MDL锁,此时DDL会阻塞其他会话,导致连接数堆积。

  • Resident Memory:查看内存大小。

  • DML Rows ProcessedPages RequestedDML/DDL OperationsTemp Disk Space Used:查看常见的业务指标。

  • Replication Delay:查看延迟指标。

空间满问题诊断

空间满问题诊断

通过空间满问题诊断视图提供的监控指标,分析处理空间占满问题。

查看实例占用存储空间的文件类型和变化趋势,常见占用存储的指标如下:

  • 数据文件(user_data_size):可以通过空间分析查看各数据库、表的空间占用情况,根据实际情况扩容或者删除不需要的数据。请参见数据文件导致实例空间满的解决办法处理数据文件。

  • 临时文件(temp_file_size):MySQL实例可能会由于查询语句的排序、分组、关联表产生的临时表文件,或者大事务提交前产生的binlog cache文件占用空间。请参见临时文件导致实例空间满的解决办法处理临时文件。

  • Binlog日志(binlog_size):MySQL实例可能会由于大事务快速生成Binlog文件占用空间。请参见MySQL Binlog文件导致实例空间满的解决办法处理Binlog日志。

    说明

    如果业务侧订阅了数据库的Binlog,也可能导致Binlog未及时清理而占用空间。

  • Undo日志(undo_log_size):一般情况下,长时间执行的查询导致Undo日志无法被清理。请检查是否有长时间执行且未结束的查询语句。

    说明

    MySQL 5.6及以前的版本,Undo日志没有独立的表空间。

  • 慢日志(slowlog_size):慢日志占用空间过高时,建议在业务低峰期使用truncate命令进行清理。

    说明

    MySQL 5.7的20210630版本,MySQL 8.0的20210930版本开始支持truncate命令。

  • 常规日志(general_log_size):实例的错误日志、Performance Agent日志、recover日志大小之和 。这部分日志总量一般都会在1 GB以内,基本保持稳定,如果大小明显超过这个范围,请提交工单联系产品解决。该指标是MySQL内核定时输出的内核指标数据,并非是MySQL的general_log的日志大小。

CPU抖动诊断

CPU抖动诊断

通过CPU抖动诊断视图提供的监控指标,分析处理CPU抖动问题,与CPU使用率强关联的指标有两类:

  • 业务指标:

    • Page Request:通常情况下,Buffer Pool请求数的趋势和CPU使用率同频波动。

    • Rows Processed:查看CPU使用率和系统处理行数的关系,判断CPU使用率变化时是否存在突增的行数。

    • Queries:查看CPU使用率变化时,主要执行的SQL语句类型。

  • 连接数:

    Thread Running:高并发会导致CPU使用率变高;MDL堆积或者行锁会导致连接数堆积,进而影响CPU使用率。

CPU抖动的常见原因:

  • 业务指标(Page Request/Rows Processed)发生变化,导致CPU使用率同步变化,此时可以选中CPU使用率变化的时间段,执行诊断获取详细的根因分析结果。

  • 活跃连接数增加引起CPU消耗,此时请从业务侧进行排查。

大事务识别诊断

大事务识别诊断

通过大事务识别诊断视图提供的监控指标,分析处理大事务问题。

  • Threads ConnectedTemp File SizeBinlog空间:查看判断是否为大事务的三个核心指标。当出现如下情况时,可判断为数据库存在大事务:

    • 活跃会话堆积。

    • 临时空间先增加然后减少。

    • 临时空间减少后Binlog空间同步增加。

  • Rows ProcessedLogical Page WriteQueries per Second:判断大事务是什么类型。

    例如查询很少,但删除的行数很多时,表明存在删除数据的大事务。

大事务会引起Binlog写入阻塞:

  • 当实例有大事务时,临时表空间(binlog cache)先逐步增加,然后保持平稳。

  • 当临时表空间平稳时,Binlog空间增加;由于Binlog写入是全局串行,其他事务会被阻塞,导致连接数开始堆积。

  • 当实例为高可用系列时,主实例和备实例的HA组件探测语句也被阻塞,实例会直接发生主备切换。

建议您将大事务拆分为小事务分别执行。例如在delete语句中增加where条件子句,限制每次删除的数据量,将一次删除操作拆分为多次数据量较小的删除操作进行。

相关文档

常见问题

操作视频

查看监控及报警