如何监控 Amazon RDS for MySQL 数据库实例的性能?

上次更新时间:2021 年 7 月 16 日

我想监控 Amazon Relational Database Service (Amazon RDS) for MySQL 数据库实例的性能。完成此操作的最佳方法是什么?

简短描述

您可以通过以下几种方法监控 Amazon RDS for MySQL 数据库实例:

要排查任何问题或多点故障,最佳实践是使用这些监控方法监控数据库实例。

解决方法

Amazon CloudWatch

Amazon CloudWatch 可实时提供 Amazon RDS for MySQL 数据库实例的指标。在使用原定设置的情况下,每隔 60 秒将 Amazon RDS 指标自动发送到 Amazon CloudWatch。您还可以创建使用情况告警,以便在特定时间段内观察单个 Amazon RDS 指标。

使用 Amazon CloudWatch 监控 Amazon RDS 指标,请执行以下步骤:

注意:指标首先按服务命名空间分组,然后按每个命名空间中的不同维度组合进行分组。

1.    打开 Amazon CloudWatch console (Amazon CloudWatch 控制台)

2.    (可选)更新您的 AWS 区域。从导航栏中,选择您的 AWS 资源所在的 AWS 区域。有关更多信息,请参阅区域和端点

3.    在导航窗格中,请选择指标

4.    选择 RDS 指标命名空间。

5.    选择指标维度。

6.    (可选)对指标进行排序、筛选、更新显示:
要对指标进行排序,请使用列标题。
要创建指标的图形视图,请选中指标旁边的复选框。
要按资源筛选,请选择资源 ID,然后选择 Add to search(添加至搜索)。
要按指标筛选,请选择指标名称,然后选择 Add to search(添加至搜索)。

增强监控(精细度间隔为 1-5 秒)

当您在 Amazon RDS 中使用增强监控时,可以查看运行数据库实例的操作系统的实时指标。

注意:您必须创建允许 Amazon RDS 与 Amazon CloudWatch Logs 进行通信的 AWS Identity Access Management (IAM) 角色

在 Amazon RDS 中启用增强监控,请执行以下步骤:

1.    滚动到 Monitoring(监控)部分。

2.    选择为数据库实例或只读副本 Enable enhanced monitoring(启用增强监控)。

3.    对于 Monitoring Role(监控角色),指定您创建的 IAM 角色。

4.    选择 Default(原定设置),让 Amazon RDS 为您创建 rds-monitoring-role 角色。

5.    将 Granularity(精细度)属性设置为以秒为单位的间隔,它是数据库实例或只读副本两次收集指标之间的间隔时间。Granularity(精细度)属性可以设置为下列值:1、5、10、15、30 或 60。

RDS 性能详情

注意:如果在创建数据库实例后手动启用了性能详情,则需要重启实例才能启用性能架构。当参数设置为“0”或“1”或者参数的“Source”(源)列设置为“user”(用户)时,性能架构将被禁用。禁用 performance_schema 参数后,性能详情将按 Amazon RDS MySQL 进程的列表状态分类显示数据库负载。要启用 performance_schema 参数,请使用重置 performance_schema 参数

使用 RDS 性能详情时,您可以使数据库负载可视化,并按等待、SQL 语句、主机或用户来筛选负载。这样,您就可以确定哪些查询导致了问题,并查看与该查询关联的等待类型和等待事件。

您可以在 Amazon RDS 控制台中为 Amazon RDS for MySQL 启用性能详情

慢速查询日志记录

您可以通过将 slow_query_log 的值设置为“1”来启用慢速查询日志。(原定设置值为“0”,这意味着慢速查询日志被禁用。) 慢速查询日志记录运行时间超过在 long_query_time 指标中指定的秒数的所有查询。(long_query_time 指标的原定设置值为“10”。) 例如,要记录运行时间超过两秒的查询,可以将 long_query_time 指标的秒数更新为“2”。

要使用自定义参数组为 Amazon RDS for MySQL 启用慢速查询日志,请执行以下操作:

1.    打开 Amazon RDS 控制台。

2.    在导航窗格中,选择 Parameter groups(参数组)。

3.    选择要修改的参数组。

4.    选择 Parameter group(参数组)操作。

5.    选择 Edit(编辑)。

6.    选择 Edit parameters(编辑参数)。

7.    更新以下参数:
log_output:如果启用了常规日志或慢速查询日志,请将该值更新为“file”(文件),以便将日志写入文件系统。日志文件每小时轮换一次。
long_query_time:将该值更新为“2”或更大,以记录运行时间超过两秒的查询。
low_query_log:将该值更新为“1”,以启用日志记录。(原定设置值为“0”,这意味着禁用日志记录。)

8.    选择 Save Changes(保存更改)。

注意:您可以修改自定义数据库组中的参数值,但不能修改原定设置的数据库参数组中的参数值。如果您无法修改自定义数据库参数组中的参数,请检查 Value type(值类型)是否设置为“Modifiable”(可修改)。有关如何将 MySQL 日志发布到 Amazon CloudWatch 日志组的信息,请参阅将 MySQL 日志发布到 Amazon CloudWatch Logs