我想监控 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。
相关信息
访问 MySQL 数据库日志文件
为 Amazon RDS for MySQL 配置参数的最佳实践,第 1 部分:与性能相关的参数
我的 Amazon RDS for MySQL、MariaDB 或 Aurora for MySQL 实例存在 CPU 利用率高的问题,如何排查并解决?
如何启用和监控 Amazon RDS MySQL 数据库实例的日志?