Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

增强监控

Amazon RDS 为数据库实例运行的操作系统 (OS) 实时提供指标。您可以使用控制台查看数据库实例指标,或者在您选择的监控系统中使用 CloudWatch 日志的增强监控 JSON 输出。

使用增强监控的成本取决于几个因素:

  • 您只需为 Amazon CloudWatch Logs 提供的免费套餐之外的增强监控付费。

  • 监控间隔越短,操作系统指标报告频率越高,监控成本也就越高。

  • 增强监控的使用成本适用于启用了增强监控的每个数据库实例。监控大量数据库实例的成本要高于监控少量数据库实例。

  • 数据库实例支持的工作负载计算越密集,要报告的操作系统进程活动就越多,增强监控的成本也越高。

增强监控可用性

  • 增强监控对以下数据库引擎可用:

    • Amazon Aurora

    • MariaDB

    • Microsoft SQL Server

    • MySQL 版本 5.5 或更高版本

    • Oracle

    • PostgreSQL

  • 增强监控可用于除 db.t1.microdb.m1.small 之外的所有数据库实例类。

CloudWatch 与增强监控指标的区别

CloudWatch 从数据库实例管理程序收集关于 CPU 使用率的指标,增强监控从实例代理收集其指标。您因此可能会发现两种测量值之间存在差异,因为管理程序层执行的工作较少。如果数据库实例使用较小的实例类,差异可能更加显著,因为此情况下管理程序层可能会在单个物理实例上管理更多虚拟机 (VM)。若您想了解数据库实例上不同进程或线程对 CPU 的使用差异,增强监控指标非常有用。

设置和启用增强监控

在您开始之前

增强监控需要代表您执行操作的权限来向 CloudWatch Logs发送操作系统指标信息。您使用 AWS Identity and Access Management (IAM) 角色授予增强监控所需的权限。

首次在控制台中启用增强监控时,您可以通过为 Monitoring Role 属性选择 Default 选项让 RDS 创建所需的 IAM 角色。然后,RDS 自动为您创建一个名为 rds-monitoring-role 的角色,并将它用于指定的数据库实例或只读副本。

您也可以在启用增强监控前创建所需角色,然后在启用增强监控时指定您的新角色的名称。如果使用 AWS CLI 或 RDS API 启用增强监控,则必须创建此必需角色。

要创建适当的 IAM 角色来允许 Amazon RDS 代表您与 Amazon CloudWatch Logs 服务通信,请执行以下步骤。

为 Amazon RDS 增强监控创建 IAM 角色

  1. 通过以下网址打开 IAM 控制台https://console.amazonaws.cn

  2. 在左侧导航窗格中,选择 Roles

  3. 选择 Create New Role

  4. 对于 Role Name,键入一个角色名称,例如 emaccess。选择 Next Step

  5. 选择 AWS Service Roles,然后滚动到 Amazon RDS Role for Enhanced Monitoring。选择 Select

  6. Attach Policy 页面上,选择 AmazonRDSEnhancedMonitoringRole 策略,然后选择 Next Step

  7. 检查信息,然后选择 Create Role

启用和禁用增强监控

您可以在创建数据库实例或只读副本时启用增强监控,也可以在修改数据库实例时启用增强监控。如果修改数据库实例以启用增强监控,您不需要重启数据库实例,更改也会生效。

执行以下某种操作时,您可以在 RDS 控制台中启用增强监控:

  • Launch a DB Instance – 您可以在 Configure Advanced Settings 页启用增强监控。

  • Create Read Replica – 您可以在 Configure Advanced Settings 页启用增强监控。

  • Modify a DB Instance – 您可以在 Modify DB Instance 页启用增强监控。

要使用 RDS 控制台启用增强监控,请滚动到 Monitoring 部分并执行以下操作:

  1. 将您的数据库实例或只读副本的 Enable Enhanced Monitoring 属性设置为 Yes

  2. Monitoring Role 属性设置为您创建的 IAM 角色以允许 Amazon RDS 代表您与 Amazon CloudWatch Logs 通信,或选择 Default 让 RDS 为您创建一个名为 rds-monitoring-role 的角色。

  3. Granularity 属性设置成两次为数据库实例或只读副本收集指标之间的间隔,以秒为单位。Granularity 属性可以设置为以下值之一:1510153060

要禁用增强监控,请将 Enable Enhanced Monitoring 属性设置为 No

 Enable Enhanced Monitoring

启用增强监控不需要重新启动您的数据库实例。

注意

RDS 控制台最快每 5 秒刷新一次。如果您在 RDS 控制台中将粒度设置为 1 秒,仍然会看到指标每 5 秒更新一次。使用 CloudWatch Logs 可以获得 1 秒的指标更新。

查看增强监控

您可以在 RDS 控制台中查看增强监控报告的操作系统指标,方法是为 Show Monitoring 选择 Enhanced Monitoring Dashboard 视图。有两种可用视图:一种是 Dashboard 视图,该视图显示操作系统指标图表;另一种是 Process List 视图,该视图显示正在数据库实例上运行的进程及其相关指标,包括 CPU 百分比、内存使用率等。

Dashboard 视图如下所示。

 Dashboard 视图

Process List 视图如下所示。

 Process list 视图

Process List 视图中所示的增强监控指标按以下方式组织:

  • RDS child processes – 显示支持数据库实例的 RDS 进程的摘要,例如 aurora (对于 Amazon Aurora 数据库群集) 和 mysqld (对于 MySQL 数据库实例)。进程线程在父进程下嵌套显示。进程线程仅显示 CPU 使用率,因为进程所有线程的其他指标都相同。控制台最多显示 100 个进程和线程。因此,显示结果将是占用最多 CPU 和内存的进程和线程。如果有超过 50 个进程和超过 50 个线程,则控制台只会显示每种类别的前 50 个。这种显示方式有助于您了解哪些进程对性能影响最大。

  • RDS processes – 摘要显示 RDS 管理代理所用的资源、诊断监控进程以及支持 RDS 数据库实例所需的其他 AWS 进程。

  • OS processes – 显示内核和系统进程摘要,这些进程通常对性能影响最小。

对每个进程列出的项目有:

  • VIRT – 显示进程的虚拟大小。

  • RES – 显示进程正在使用的实际物理内存。

  • CPU% – 显示进程占用的 CPU 带宽的百分比。

  • MEM% – 显示进程占用的总内存的百分比。

RDS 控制台中显示的监控数据是从 Amazon CloudWatch Logs 中检索的。您还可以从 CloudWatch Logs 中检索数据库实例的指标作为日志流。有关更多信息,请参阅 使用 CloudWatch Logs 查看增强监控

以下情况下不会返回增强监控指标:

  • 数据库实例发生了故障转移。

  • 更改了数据库实例的实例类 (扩展计算)。

增强监控指标在重启数据库实例期间返回,因为只会重启数据库引擎。仍会报告操作系统的指标。

使用 CloudWatch Logs 查看增强监控

为数据库实例启用增强监控后,您可以使用 CloudWatch Logs 查看数据库实例指标,每个日志流表示一个被监控的数据库实例。日志流标识符是数据库实例的资源标识符 (DbiResourceId)。

查看增强监控日志数据

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 如果需要,选择您的数据库实例所在的区域。有关更多信息,请转到 Amazon Web Services 一般参考中的区域和终端节点

  3. 在导航窗格中选择 Logs

  4. 从日志组列表中选择 RDSOSMetrics

  5. 从日志流列表中选择要查看的日志流。

可用操作系统指标

下列各表列出了使用 Amazon CloudWatch Logs 可获得的操作系统指标。

Amazon Aurora、MariaDB、MySQL、Oracle 和 PostgreSQL 数据库实例的指标

指标 说明

General

engine

数据库实例的数据库引擎。

instanceID

数据库实例标识符。

instanceResourceID

数据库实例的区域内唯一且不可变的标识符,也用作日志流标识符。

numVCPUs

数据库实例的虚拟 CPU 数量。

timestamp

提取指标的时间。

uptime

数据库实例处于活动状态的时间量。

version

操作系统指标的流 JSON 格式版本。

cpuUtilization

guest

来宾程序使用的 CPU 百分比。

idle

CPU 空闲百分比。

irq

软件中断使用的 CPU 百分比。

nice

以最低优先级运行的程序使用的 CPU 百分比。

steal

其他虚拟机使用的 CPU 百分比。

system

内核使用的 CPU 百分比。

total

使用中的 CPU 百分比总计。此值包含 nice 值。

user

用户程序使用的 CPU 百分比。

wait

等待 I/O 访问时的未使用 CPU 百分比。

diskIO

avgQueueLen

在 I/O 设备队列中等待的请求数。

此指标对于 Amazon Aurora 不可用。

avgReqSz

平均请求大小 (以 KB 为单位)。

此指标对于 Amazon Aurora 不可用。

await

响应请求所需的毫秒数,包括排队时间和服务时间。

此指标对于 Amazon Aurora 不可用。

device

使用中的磁盘设备的标识符。

此指标对于 Amazon Aurora 不可用。

readIOsPS

每秒的读取操作数。

此指标对于 Amazon Aurora 不可用。

readKb

读取的总 KB 数。

此指标对于 Amazon Aurora 不可用。

readKbPS

每秒读取的 KB 数。

此指标对于 Amazon Aurora 不可用。

rrqmPS

每秒排队的合并读取请求数。

此指标对于 Amazon Aurora 不可用。

tps

每秒的 I/O 事务数。

此指标对于 Amazon Aurora 不可用。

util

发出请求所经历的 CPU 时间的百分比。

此指标对于 Amazon Aurora 不可用。

writeIOsPS

每秒的写入操作数。

此指标对于 Amazon Aurora 不可用。

writeKb

写入的总 KB 数。

此指标对于 Amazon Aurora 不可用。

writeKbPS

每秒写入的 KB 数。

此指标对于 Amazon Aurora 不可用。

wrqmPS

每秒排队的合并写入请求数。

此指标对于 Amazon Aurora 不可用。

fileSys

maxFiles

可为文件系统创建的文件的最大数量。

mountPoint

文件系统的路径。

name

文件系统的名称。

total

文件系统的可用磁盘空间总量 (以 KB 为单位)。

used

文件系统中的文件所用的磁盘空间量 (以 KB 为单位)。

usedFilePercent

使用中的可用文件百分比。

usedFiles

文件系统中的文件数。

usedPercent

使用中的文件系统磁盘空间百分比。

loadAverageMinute

fifteen

过去 15 分钟内请求 CPU 时间的进程数。

five

过去 5 分钟内请求 CPU 时间的进程数。

one

过去 1 分钟内请求 CPU 时间的进程数。

memory

active

已分配的内存量 (以 KB 为单位)。

buffers

在写入存储设备前用于缓存 I/O 请求的内存量 (以 KB 为单位)。

cached

用于缓存基于文件系统的 I/O 的内存量。

dirty

RAM 中已修改但未写入存储中的相关数据块的内存页面大小 (以 KB 为单位)。

free

未分配的内存量 (以 KB 为单位)。

hugePagesFree

可用巨页数。巨页是 Linux 内核的一项功能。

hugePagesRsvd

已提交巨页数。

hugePagesSize

每个巨页单位的大小 (以 KB 为单位)。

hugePagesSurp

剩余可用巨页总数。

hugePagesTotal

系统巨页总数。

inactive

最不常用内存页面大小 (以 KB 为单位)。

mapped

在进程地址空间中有内存映射的文件系统内容的总大小 (以 KB 为单位)。

pageTables

页表使用的内存量 (以 KB 为单位)。

slab

可重用内核数据结构大小 (以 KB 为单位)。

total

内存总量 (以 KB 为单位)。

writeback

RAM 中仍在写入备份存储的脏页大小 (以 KB 为单位)。

network

interface

数据库实例现用网络接口的标识符。

rx

每秒接收的字节数。

tx

每秒上传的字节数。

processList

cpuUsedPc

进程使用的 CPU 百分比。

id

进程的标识符。

memoryUsedPc

进程使用的内存量 (以 KB 为单位)。

name

进程的名称。

parentID

进程的父进程的进程标识符。

rss

分配给进程的 RAM 量 (以 KB 为单位)。

tgid

线程组标识符,是表示线程所属进程的 ID 的数字。此标识符用于将同一进程内的线程分入一组。

vss

分配给进程的虚拟内存量 (以 KB 为单位)。

swap

cached

用作缓存内存的交换内存量 (以 KB 为单位)。

free

空闲交换内存总量 (以 KB 为单位)。

total

可用交换内存总量 (以 KB 为单位)。

tasks

blocked

已阻止的任务的数量。

running

正在运行的任务的数量。

sleeping

正在睡眠的任务的数量。

stopped

已停止的任务的数量。

total

任务总数。

zombie

有活动父任务的不活动子任务的数量。

Microsoft SQL Server 数据库实例的指标

指标 说明

General

engine

数据库实例的数据库引擎。

instanceID

数据库实例标识符。

instanceResourceID

数据库实例的区域内唯一且不可变的标识符,也用作日志流标识符。

numVCPUs

数据库实例的虚拟 CPU 数量。

timestamp

提取指标的时间。

uptime

数据库实例处于活动状态的时间量。

version

操作系统指标的流 JSON 格式版本。

cpuUtilization

idle

CPU 空闲百分比。

kern

内核使用的 CPU 百分比。

user

用户程序使用的 CPU 百分比。

disks

name

磁盘的标识符。

totalKb

磁盘的总空间 (KB)。

usedKb

磁盘上使用的空间量 (KB)。

usedPc

磁盘上使用的空间百分比。

availKb

磁盘上的可用空间 (KB)。

availPc

磁盘上可用空间的百分比。

rdCountPS

每秒的读取操作数

rdBytesPS

每秒读取的字节数。

wrCountPS

每秒的写入操作数。

wBytesPS

每秒写入的字节数。

memory

commitToKb

正在使用的页面文件备份的虚拟地址空间量,即当前内存使用。此值包含主内存 (RAM) 和磁盘 (页面文件)。

commitLimitKb

commitTotKb 指标的最大可取值。此值为当前页面文件大小加上可用于可分页内容的物理存储之和 – 不包含已分配给不可分页区域的 RAM。

commitPeakKb

自上次启动操作系统以来 commitTotKb 指标的最大值。

kernTotKb

分页和未分页内核池中的内存之和 (KB)。

kernPagedKb

分页内核池中的内存量 (KB)。

kernNonpagedKb

未分页内核池中的内存量 (KB)。

pageSize

页面的大小 (字节)。

physTotKb

物理内存量 (KB)。

physAvailKb

可用物理内存量 (KB)。

sqlServerTotKb

提交给 Microsoft SQL Server 的内存量 (KB)。

sysCacheKb

系统缓存容量 (KB)。

network

interface

数据库实例现用网络接口的标识符。

rdBytesPS

每秒接收的字节数。

wrBytesPS

每秒发送的字节数。

processList

cpuUsedPc

进程使用的 CPU 百分比。

memUsedPc

进程使用的内存量 (以 KB 为单位)。

name

进程的名称。

pid

进程的标识符。Amazon RDS 拥有的进程不存在此值。

ppid

此进程的父进程的进程标识符。仅子进程存在此值。

tid

线程标识符。仅线程存在此值。拥有的进程可使用 pid 值标识。

workingSetKb

私有工作集中的内存量加上进程正在使用且可与其他进程共享的内存量 (KB)。

workingSetPrivKb

进程正在使用但无法与其他进程共享的内存量 (KB)。

workingSetShareableKb

进程正在使用且可与其他进程共享的内存量 (KB)。

virtKb

进程正在使用的虚拟地址空间量 (KB)。虚拟地址空间的使用不一定意味着磁盘或主内存页的相应使用。

system

handles

系统使用的句柄数量。

processes

系统上运行的进程数量。

threads

系统上运行的线程数量。

相关主题