

# 监控 Amazon RDS 实例中的指标
<a name="CHAP_Monitoring"></a>

在以下各节中，您可找到 Amazon RDS 监控概览以及关于如何访问指标的说明。要了解如何监控事件、日志和数据库活动流，请参阅 [监控 Amazon RDS 数据库实例中的事件、日志和流](CHAP_Monitor_Logs_Events.md)。

**Topics**
+ [监控计划](#MonitoringOverview.plan)
+ [性能基准](#MonitoringOverview.baseline)
+ [性能准则](#MonitoringOverview.guidelines)
+ [Amazon RDS 的监控工具](MonitoringOverview.md)
+ [查看实例状态](accessing-monitoring.md)
+ [来自 Amazon RDS 的建议](monitoring-recommendations.md)
+ [在 Amazon RDS 控制台中查看指标](USER_Monitoring.md)
+ [使用性能详情控制面板查看组合指标](Viewing_Unifiedmetrics.md)
+ [使用 Amazon CloudWatch 监控 Amazon RDS 指标](monitoring-cloudwatch.md)
+ [使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)
+ [在 Amazon RDS 上使用性能详情监控数据库负载](USER_PerfInsights.md)
+ [使用适用于 Amazon RDS 的 Amazon DevOps Guru 分析性能异常](devops-guru-for-rds.md)
+ [使用增强监控来监控操作系统指标](USER_Monitoring.OS.md)
+ [Amazon RDS 的指标参考](metrics-reference.md)

## 监控计划
<a name="MonitoringOverview.plan"></a>

在开始监控 Amazon RDS 之前，请创建监控计划。该计划应回答以下问题：
+ 您的监控目标是什么？
+ 您将监控哪些资源？
+ 监控这些资源的频率如何？
+ 您将使用哪些监控工具？
+ 谁负责执行监控任务？
+ 出现问题时应通知谁？

## 性能基准
<a name="MonitoringOverview.baseline"></a>

为了实现您的监控目标，您需要建立一个基准。为此，请在 Amazon RDS 环境的不同时间、不同负载条件下测量性能。您可以监控如下指标：
+ 网络吞吐量
+ 客户端连接
+ 用于读取、写入或元数据操作的 I/O
+ 数据库实例的突增信用余额

我们建议您存储 Amazon RDS 的历史性能数据。使用存储的数据，您可以将当前性能与过去的趋势进行比较。您还可以区分正常性能模式与异常情况，并设计解决问题的方法。

## 性能准则
<a name="MonitoringOverview.guidelines"></a>

通常，性能指标的可接受值取决于应用程序相对于基准正在执行的操作。应调查相对于基准性能的一致或趋势性变化。以下指标通常是性能问题的根源：
+  **高 CPU 或 RAM 消耗** – CPU 或 RAM 消耗值高可能是正常情况，前提是它们符合您的应用程序目标（如吞吐量或并发度）并且符合预期。
+  **磁盘空间消耗** – 如果使用的空间始终不低于总磁盘空间的 85%，则应调查磁盘空间消耗。应查看是否可以从实例中删除数据或是将数据存档到其他系统以释放空间。
+  **网络流量** – 对于网络流量，应与系统管理员进行讨论，以了解域网络和 Internet 连接的预期吞吐量。如果吞吐量始终低于预期，则应调查网络流量。
+  **数据库连接** – 如果发现用户连接数较高，实例性能下降且响应时间延长，请考虑约束数据库连接。数据库实例的最佳用户连接数因您的实例类所执行操作的复杂性而异。要确定数据库连接的数量，请将数据库实例与参数组关联，其中 `User Connections` 参数设置为 0 以外的值（无限制）。您可以使用现有参数组或新建一个。有关更多信息，请参阅“[Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)”。
+  **IOPS 指标** – IOPS 指标的预期值取决于磁盘规格和服务器配置，因此，请使用您的基准来了解典型状况。调查值是否始终与您的基准不同。为获得最佳 IOPS 性能，请确保典型工作集与内存大小相适，以最大限度地减少读取和写入操作。

当性能超出已建立的基准时，您可能需要进行更改以优化数据库可用性，进而适应工作负载。例如，您可能需要更改数据库实例的实例类。或者，您可能需要更改可供客户端使用的数据库实例和只读副本的数量。

# Amazon RDS 的监控工具
<a name="MonitoringOverview"></a>

监控是保持 Amazon RDS 和您的其他 AWS 解决方案的可靠性、可用性和性能的重要方面。AWS 提供各种监控工具来监控 Amazon RDS、在出现错误时进行报告并适时自动采取措施。

**Topics**
+ [自动监控工具](#MonitoringOverview.tools.automated)
+ [手动监控工具](#monitoring_manual_tools)

## 自动监控工具
<a name="MonitoringOverview.tools.automated"></a>

建议您尽可能实现监控任务自动化。

**Topics**
+ [Amazon RDS 实例 状态和建议](#MonitoringOverview.tools.automated.rds)
+ [Amazon RDS 的 Amazon CloudWatch 指标](#MonitoringOverview.tools.automated.integrated)
+ [Amazon RDS 性能详情和操作系统监控](#MonitoringOverview.tools.automated.metrics.rds)
+ [集成服务](#MonitoringOverview.tools.automated.integrated.events-logs-streams)

### Amazon RDS 实例 状态和建议
<a name="MonitoringOverview.tools.automated.rds"></a>

您可以使用以下自动化工具来监控 Amazon RDS，并在出现错误时进行报告：
+ **Amazon RDS 实例状态** – 通过使用 Amazon RDS 控制台、AWS CLI 或 RDS API，查看有关您的实例当前状态的详细信息。
+ **Amazon RDS 建议** — 回应自动提供数据库资源（例如数据库实例、只读副本和数据库参数组）的建议。有关更多信息，请参阅 [来自 Amazon RDS 的建议](monitoring-recommendations.md)。

### Amazon RDS 的 Amazon CloudWatch 指标
<a name="MonitoringOverview.tools.automated.integrated"></a>

Amazon RDS 与 Amazon CloudWatch 集成以提供其他监控功能。
+ **Amazon CloudWatch** – 此服务可实时监控您的AWS资源以及您在AWS上运行的应用程序。可以将以下 Amazon CloudWatch 功能用于 Amazon RDS：
  + **Amazon CloudWatch 指标 ** – Amazon RDS 每分钟自动向 CloudWatch 发送一次每个活动数据库的指标。对于 CloudWatch 中的 Amazon RDS 指标，您不会获得额外费用。有关更多信息，请参阅[使用 Amazon CloudWatch 监控 Amazon RDS 指标](monitoring-cloudwatch.md)。
  + **Amazon CloudWatch 警报** – 您可以在特定时间段内监控单个 Amazon RDS 指标。然后，您可以根据相对于您设置的阈值的指标值来执行一个或多个操作。有关更多信息，请参阅。[使用 Amazon CloudWatch 监控 Amazon RDS 指标](monitoring-cloudwatch.md)

### Amazon RDS 性能详情和操作系统监控
<a name="MonitoringOverview.tools.automated.metrics.rds"></a>

您可以使用以下自动化工具来监控 Amazon RDS 性能：
+ **Amazon RDS Performance Insights** - 可评估数据库上的负载，并确定执行操作的时间和位置。有关更多信息，请参阅 [在 Amazon RDS 上使用性能详情监控数据库负载](USER_PerfInsights.md)。
+ **Amazon RDS 增强监控** - 实时查看操作系统的指标。有关更多信息，请参阅 [使用增强监控来监控操作系统指标](USER_Monitoring.OS.md)。

### 集成服务
<a name="MonitoringOverview.tools.automated.integrated.events-logs-streams"></a>

以下 AWS 服务与 Amazon RDS 集成：
+ *Amazon EventBridge* 是一种无服务器事件总线服务，可以轻松地将应用程序与来自各种来源的数据相连接。有关更多信息，请参阅 [监控 Amazon RDS 事件](working-with-events.md)。
+ *Amazon CloudWatch Logs* 可让您监控、存储和访问来自 Amazon RDS  实例、CloudTrail 和其他来源的日志文件。有关更多信息，请参阅 [监控 Amazon RDS 日志文件](USER_LogAccess.md)。
+ *AWS CloudTrail* 捕获由您的 AWS 账户 或代表该账户发出的 API 调用和相关事件，并将日志文件传输到您指定的 Amazon S3 桶。有关更多信息，请参阅 [监控 AWS CloudTrail 中的 Amazon RDS API 调用](logging-using-cloudtrail.md)。
+ *数据库活动流*是一项 Amazon RDS  功能，它提供 Oracle 数据库实例中近乎实时的活动流。有关更多信息，请参阅 [使用数据库活动流监控 Amazon RDS](DBActivityStreams.md)。

## 手动监控工具
<a name="monitoring_manual_tools"></a>

您需要手动监控那些 CloudWatch 警报未覆盖的项目。Amazon RDS、CloudWatch、AWS Trusted Advisor 和其他AWS控制台控制面板提供您的AWS环境状态的概览视图。建议您还要查看数据库实例上的日志文件。
+ 您可以从 Amazon RDS 控制台监控资源的以下项目：
  + 与数据库实例的连接数
  + 针对数据库实例的读写操作数量
  + 数据库实例当前使用的存储量
  + 为数据库实例使用的内存和 CPU 量
  + 流入和流出数据库实例的网络流量
+ 您可以从 Trusted Advisor 控制面板查看以下成本优化、安全性、容错能力和性能改进检查：
  + Amazon RDS 闲置数据库实例
  + Amazon RDS 安全组访问风险
  + Amazon RDS 备份
  + Amazon RDS 多可用区

  有关这些检查的更多信息，请参阅 [Trusted Advisor 最佳实践（检查）](https://aws.amazon.com/premiumsupport/trustedadvisor/best-practices/)。
+ CloudWatch 主页显示：
  + 当前告警和状态
  + 告警和资源图表
  + 服务运行状况

  此外，您还可以使用 CloudWatch 执行以下操作：
  + 创建[自定义控制面板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CloudWatch_Dashboards.html)以监控您关注的服务。
  + 绘制指标数据图，以排除问题并弄清楚趋势。
  + 搜索并浏览您所有的 AWS 资源指标。
  + 创建和编辑警报以接收有关问题的通知。

# 查看实例状态
<a name="accessing-monitoring"></a>

使用 Amazon RDS 控制台，您可以快速访问数据库实例的状态。

**Topics**
+ [查看 Amazon RDS数据库实例状态](#Overview.DBInstance.Status)

## 查看 Amazon RDS数据库实例状态
<a name="Overview.DBInstance.Status"></a>

数据库实例的状态表示其当前的运行状态。您可以使用以下过程在 Amazon RDS 控制台、AWS CLI 命令或 API 操作中查看数据库实例状态。

**注意**  
Amazon RDS 还使用名为*维护状态*的另一种状态，此状态显示在 Amazon RDS 控制台的**维护**栏中。该值指示需要应用于数据库实例的任何维护修补程序的状态。维护状态独立于数据库实例状态。有关维护状态的更多信息，请参阅[对数据库实例应用更新](USER_UpgradeDBInstance.Maintenance.md#USER_UpgradeDBInstance.OSUpgrades)。

在下表中可找到数据库实例的可能状态值。此表还会显示是否对数据库实例和存储或者仅对存储向您计费，还是不向您计费。对于所有数据库实例状态，始终会针对备份使用向您计费。


| 数据库实例状态 | 已计费  | 描述 | 
| --- | --- | --- | 
|  **available**  |  计费  |  可以使用数据库实例进行修改。  | 
|  **backing-up**  |  已计费  |  当前正在备份数据库实例。  | 
|  **configuring-enhanced-monitoring**  |  已计费  |  正在对此数据库实例启用或禁用增强监控。  | 
|  **configuring-iam-database-auth**  |  已计费  |  AWS Identity and Access Management正在对此数据库实例启用或禁用 （IAM）数据库身份验证。  | 
|  **configuring-log-exports**  |  已计费  |  正在对此数据库实例启用或禁用向 Amazon CloudWatch Logs 发布日志文件。  | 
|  **converting-to-vpc**  |  已计费  |  数据库实例正在从不在 Amazon Virtual Private Cloud (Amazon VPC) 中的数据库实例转换为在 Amazon VPC 中的数据库实例。  | 
|  **创建**  |  不计费（非 PITR） 已计费（仅限 PITR）  |  正在创建数据库实例。无法访问正在创建的数据库实例。 如果您在时间点故障恢复（PITR）期间还原数据库，则会在数据库处于 **creating** 状态时对您计费。这是 **creating** 状态产生费用的唯一场景。  | 
|  **delete-precheck**  |  不计费  |  Amazon RDS 正在验证只读副本是否可以安全删除。  | 
|  **deleting**  |  不计费  |  正在删除数据库实例。  | 
|  **failed**  |  不计费  |  数据库实例已失败，Amazon RDS 无法恢复它。执行时间点还原，以还原至数据库实例的最近可还原时间，从而恢复数据。  | 
|  **inaccessible-encryption-credentials**  |  不计费  |  无法访问或恢复用于加密或解密数据库实例的 AWS KMS key。  | 
|  **inaccessible-encryption-credentials-recoverable**  |  对存储计费  |  无法访问用于加密或解密数据库实例的 KMS 密钥。但是，如果 KMS 密钥处于活动状态，则重新启动数据库实例可以恢复它。 有关更多信息，请参阅 [加密数据库实例](Overview.Encryption.md#Overview.Encryption.Enabling)。  | 
|  **incompatible-create**  |  不计费  |  Amazon RDS 正尝试创建数据库实例，但无法执行此操作，因为资源与您的数据库实例不兼容。这种情况在一定条件下会发生，例如，当数据库实例的实例配置文件没有正确的权限时。  | 
|  **incompatible-network**  |  不计费  |  Amazon RDS 正尝试对数据库实例执行恢复操作，但无法执行此操作，因为 VPC 正处于一种阻止此操作完成的状态。例如，如果子网中的所有可用 IP 地址都在使用中，并且 Amazon RDS 无法为数据库实例获取 IP 地址，就会出现此状态。  | 
|  **incompatible-option-group**  |  已计费  |  Amazon RDS 尝试应用选项组更改，但却无法执行，并且 Amazon RDS 无法回滚到选项组之前的状态。有关更多信息，请查看数据库实例的**近期事件**列表。例如，如果选项组包含一个诸如 TDE 的选项以及数据库实例不包含加密信息时，上述情况可能会发生。  | 
|  **incompatible-parameters**  |  已计费  |  Amazon RDS 无法启动数据库实例，因为在数据库实例的数据库参数组中指定的参数与数据库实例不兼容。恢复参数更改或使这些更改与数据库实例相兼容以重新访问数据库实例。有关不兼容参数的更多信息，请查看数据库实例的**近期事件**列表。  | 
|  **incompatible-restore**  |  不计费  |  Amazon RDS 无法执行时间点还原。此状态的常见原因包括使用临时表、 使用带 MySQL 的 MyISAM 表，或使用带 MariaDB 的 Aria 表。  | 
| insufficient-capacity |  不计费  |  由于目前容量不足，Amazon RDS 无法创建实例。要在同一可用区中创建同一实例类型的数据库实例，请删除数据库实例，等待几个小时后，再尝试重新创建。或者，使用其他实例类或可用区创建新实例。  | 
|  **maintenance**  |  已计费  |  Amazon RDS 正在对数据库实例应用维护更新。此状态用于 RDS 预先计划的实例级别的维护。  | 
|  **modifying**  |  已计费  |  正在按照客户的请求修改数据库实例。  | 
|  **moving-to-vpc**  |  已计费  |  数据库实例正移至新的 Amazon Virtual Private Cloud (Amazon VPC)。  | 
|  **rebooting**  |  已计费  |  按照客户请求或需要重启数据库实例的 Amazon RDS 过程正在重启数据库实例。  | 
|  **resetting-master-credentials**  |  已计费  |  正在按照客户请求重置数据库实例的主凭证。  | 
|  **renaming**  |  已计费  |  正在按照客户请求重命名数据库实例。  | 
|  **restore-error**  |  已计费  |  数据库实例在尝试还原到某个时间点或从快照还原时遇到错误。  | 
|  **starting**  |  对存储计费  |  数据库实例正在启动。  | 
|  **stopped**  |  对存储计费  |  数据库实例已停止。  | 
|  **stopping**  |  对存储计费  |  正在停止数据库实例。  | 
|  **storage-config-upgrade**  |  计费  |  正在升级数据库实例的存储文件系统配置。此状态仅适用于蓝绿部署中的绿色数据库或数据库实例只读副本。  | 
|  **storage-full**  |  已计费  |  数据库实例达到了其存储分配容量。这是一种严重状态，我们推荐您立即修复该问题。为此，请通过修改数据库实例来扩展存储。要避免这种情况，请将 Amazon CloudWatch 警报设置为当存储空间逐渐减小时向您发出警告。  | 
| storage-initialization |  计费  |  从快照还原后，数据库实例正在从 Amazon S3 加载数据块，以优化卷性能。它仍然可供操作，但在初始化完成之前，性能可能无法达到最佳。  | 
|  **storage-optimization**  |  计费  |  Amazon RDS 正在优化数据库实例的存储。存储优化过程通常很短，但有时可能会达到甚至超过 24 小时。 在存储优化期间，数据库实例保持可用。存储优化进程在后台运行，不会影响实例的可用性。  | 
|  **upgrading**  |  计费  |  数据库引擎或操作系统版本正在升级。  | 
|  **upgrade\$1failed**  |  不计费  |  数据库实例未能升级到受支持的版本。Aurora 使用前缀 `rds-final` 创建最终快照。  | 

### 控制台
<a name="DBinstance.Status.Console"></a>

**查看数据库实例的状态：**

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择 **Databases (数据库)**。

   将显示 **Databases**（数据库）页面以及数据库实例的列表。对于的每个数据库实例，显示状态值。  
![\[查看数据库实例的状态\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/RDS_instance_status.png)

### CLI
<a name="DBinstance.Status.Cli"></a>

要使用 AWS CLI 查看数据库实例及其状态信息，请使用 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令。例如，以下 AWS CLI 命令可列出所有数据库实例信息。

```
aws rds describe-db-instances
```

要查看特定数据库实例及其状态，请带以下选项调用 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令：
+ `DBInstanceIdentifier` – 数据库实例的名称。

```
aws rds describe-db-instances --db-instance-identifier mydbinstance
```

要只是查看所有数据库集群的状态，请在 AWS CLI 中使用以下查询。

```
aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier,DBInstanceStatus]' --output table
```

### API
<a name="DBinstance.Status.Api"></a>

要使用 Amazon RDS API 查看数据库实例的状态，请调用 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 操作。

# 来自 Amazon RDS 的建议
<a name="monitoring-recommendations"></a>

Amazon RDS 为数据库资源（例如数据库实例、、只读副本和数据库参数组）提供自动建议。这些建议通过分析数据库实例配置、使用和性能数据来提供最佳实践准则。

Amazon RDS 性能详情可监控特定指标，并自动通过分析指定资源可能存在问题的级别来创建阈值。当新的指标值在给定时间段内超过预定义的阈值时，性能详情会生成主动建议。此建议有助于防止数据库性能将来受到影响。例如，当连接到数据库的会话没有执行活动的工作，但可以保持阻止数据库资源时，将为 RDS for PostgreSQL 实例生成“空闲事务”建议。要获得主动建议，您必须开启性能详情，并设置付费套餐保留期。有关开启性能详情的信息，请参阅[为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)。有关性能详情的定价和数据留存的更多信息，请参阅[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)。

DevOps Guru for RDS 会监控某些指标，以检测指标的行为何时变得高度不寻常或异常。这些异常被报告为带有建议的被动见解。例如，DevOps Guru for RDS 可能会建议您考虑增加 CPU 容量或调查导致数据库负载的等待事件。DevOps Guru for RDS 还提供基于阈值的主动建议。对于这些建议，您必须开启 DevOps Guru for RDS。有关开启 DevOps Guru for RDS 的信息，请参阅[打开 DevOps Guru 并指定资源覆盖范围](devops-guru-for-rds.md#devops-guru-for-rds.configuring.coverage)。

建议将处于以下任何状态：活动、已忽略、待处理或已解决。已解决的建议有效期为 365 天。

您可以查看或取消建议。您可以立即应用基于配置的活动建议，将其安排在下一个维护时段，或将其忽略。对于基于阈值的主动建议和基于机器学习的被动建议，您需要查看建议的问题原因，然后执行建议的操作来修复问题。

在以下 AWS 区域中支持建议：
+ 美国东部（俄亥俄州）
+ 美国东部（弗吉尼亚州北部）
+ 美国西部（加利福尼亚北部）
+ 美国西部（俄勒冈州）
+ 亚太地区（孟买）
+ 亚太地区（首尔）
+ 亚太地区（新加坡）
+ 亚太地区（悉尼）
+ 亚太地区（东京）
+ 加拿大（中部）
+ 欧洲地区（法兰克福）
+ 欧洲地区（爱尔兰）
+ 欧洲地区（伦敦）
+ 欧洲地区（巴黎）
+ 欧洲地区（斯德哥尔摩）
+ 南美洲（圣保罗）

在以下各节中，学习查看、应用、忽略和修改来自 Amazon RDS 的建议。

**Topics**
+ [查看 Amazon RDS 建议](UserRecommendationsView.md)
+ [应用 Amazon RDS 建议](USERRecommendationsManage.ApplyRecommendation.md)
+ [忽略 Amazon RDS 建议](USERRecommendationsManage.DismissRecommendation.md)
+ [将已忽略的 Amazon RDS 建议修改为活动的建议](USERRecommendationsManage.DismissToActiveRecommendation.md)
+ [Amazon RDS 中的建议参考](USERRecommendationsManage.RecommendationReference.md)

# 查看 Amazon RDS 建议
<a name="UserRecommendationsView"></a>

使用 Amazon RDS 控制台，您可以查看 Amazon RDS 针对您的数据库资源提出的建议。

## 控制台
<a name="UserRecommendationsView.Con"></a>

**查看 Amazon RDS 建议**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，执行以下任何一项操作：
   + 选择**建议**。**建议**旁边提供了针对您的资源的有效建议数量和上个月生成的严重性最高的建议数量。要查找每个严重性的有效建议数量，请选择显示最高严重性的数字。  
![\[在控制台中选择“建议”\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/recommendations-select.png)

     默认情况下，**建议**页面显示上个月的新建议列表。Amazon RDS 会针对您账户中的所有资源提供建议，并按其严重性对建议进行排序。  
![\[控制台中的主建议页面，其中包含所有建议\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_List.png)

     您可以选择建议以查看页面底部的部分，其中包含受影响的资源以及如何应用该建议的详细信息。
   + 在**数据库**页中，为资源选择**建议**。  
![\[控制台中“数据库”页面上选择了“建议”选项\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_DBpage.png)

     **建议**选项卡显示所选资源的建议及其详细信息。  
![\[控制台中“数据库”页面上的“建议”选项卡\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/RecommendationsTab_DBpage.png)

   以下详细信息可用于建议：
   + **严重性** - 问题的含义级别。严重性级别为**高**、**中**、**低**和**信息**。
   + **检测** - 受影响资源的数量和问题的简短描述。选择此链接可查看建议和分析详细信息。
   + **建议** – 要应用的建议操作的简短描述。
   + **影响** – 对不应用建议时可能产生的影响的简短描述。
   + **类别** - 建议的类型。这些类别包括**性能效率**、**安全性**、**可靠性**、**成本优化**、**卓越运营**和**可持续性**。
   + **状态** – 建议的当前状态。可能的状态为**全部**、**活动**、**已忽略**、**已解决**和**待处理**。
   + **开始时间** – 问题开始的时间。例如，**18 小时前**。
   + **上次修改时间** - 由于**严重性**更改而导致系统上次更新建议的时间，或者您对建议做出回应的时间。例如，**10 小时前**。
   + **结束时间** - 问题结束的时间。对于任何持续存在的问题，不会显示此时间。
   + **资源标识符** - 一个或多个资源的名称。

1. （可选）在字段中选择**严重性**或**类别**运算符以筛选建议列表。  
![\[控制台中包含严重性操作的“建议”页面。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_Severity.png)

   此时将显示所选操作的建议。

1. （可选）选择以下任何一个建议状态：
   + **活动**（默认）– 显示您可以应用、计划在下一个维护时段应用或忽略的当前建议。
   + **全部** - 显示当前状态的所有建议。
   + **已忽略** - 显示已忽略的建议。
   + **已解决** - 显示已解决的建议。
   + **待处理** - 显示其建议的操作正在进行中或计划在下一个维护时段应用的建议。  
![\[在控制台中按状态筛选建议\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_Status.png)

1. （可选）在**上次修改时间**中选择**相对模式**或**绝对模式**，以修改时间段。**建议**页面显示该时间段内生成的建议。默认时间段为最近 1 个月。在**绝对模式**下，您可以选择时间段，或者在**开始日期**和**结束日期**字段中输入时间。  
![\[在控制台中按时间段筛选建议\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_TimeMode.png)

   将显示设定时间段的建议。

   请注意，将范围设置为**全部**，即可查看您账户中资源的所有相关建议。

1. （可选）选择右侧的**首选项**以自定义要显示的详细信息。您可以选择页面大小、对文本换行以及允许或隐藏列。

1. （可选）选择建议，然后选择**查看详细信息**。  
![\[控制台中的“建议”页面，选择了所选建议和查看详细信息按钮。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_viewDetailsSelect.png)

   此时会显示建议详细信息页面。标题提供了检测到问题的资源总数和严重性。

   有关基于异常的被动建议的详细信息页面上组件的信息，请参阅《Amazon DevOps Guru User Guide》**中的 [Viewing reactive anomalies](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-rds.analyzing.metrics.html)。

   有关基于阈值的主动建议的详细信息页面上组件的信息，请参阅[查看性能详情主动建议](USER_PerfInsights.InsightsRecommendationViewDetails.md)。

   其它自动建议在建议详细信息页面上显示以下组件：
   + **建议** – 建议的摘要以及是否需要停机才能应用建议。  
![\[控制台中显示“建议”部分的“建议详细信息”页面。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/RecommendationSummary.png)
   + **受影响的资源** - 受影响资源的详细信息。  
![\[控制台中显示“受影响资源”部分的“建议详细信息”页面。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_AffectedResources.png)
   + **建议详细信息** – 支持的引擎信息、应用建议所需的任何相关费用以及用于了解更多信息的文档链接。  
![\[控制台中显示“建议详细信息”部分的“建议详细信息”页面。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/RecommendationDetails.png)

## CLI
<a name="UserRecommendationsView.Cli"></a>

要查看数据库实例的 Amazon RDS 建议，请在 AWS CLI 中使用以下命令。

```
aws rds describe-db-recommendations
```

## RDS API
<a name="UserRecommendationsView.API"></a>

要使用 Amazon RDS API 查看 Amazon RDS 建议，请使用 [DescribeDBRecommendations](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBRecommendations.html) 操作。

# 应用 Amazon RDS 建议
<a name="USERRecommendationsManage.ApplyRecommendation"></a>

要使用 Amazon RDS 控制台应用 Amazon RDS 建议，请在详细信息页面中选择基于配置的建议或受影响的资源。然后，选择立即应用该建议，或将其安排在下一个维护时段。资源可能需要重启才能使更改生效。对于一些数据库参数组建议，您可能需要重启资源。

基于阈值的主动建议或基于异常的被动建议不具有应用选项，可能需要进一步审查。

## 控制台
<a name="USERRecommendationsManage.ApplyRecommendation-Console"></a>

**应用基于配置的建议**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，执行以下任一操作：
   + 选择**建议**。

     此时将出现**建议**页面，其中包含所有建议的列表。
   + 选择**数据库**，然后在数据库页中为资源选择**建议**。

     详细信息显示在所选建议的**建议**选项卡中。
   + 在**建议**页或**数据库**页的**建议**选项卡中，为活动的建议选择**检测**。

     此时会显示建议详细信息页面。

1. 在建议详细信息页面中选择一个建议或一个或多个受影响的资源，然后执行以下任一操作：
   + 选择**应用**，然后选择**立即应用**以立即应用建议。
   + 选择**应用**，然后选择**在下一个维护时段内应用**以计划在下一个维护时段中应用。

     在到达下一个维护时段之前，所选建议的状态将更新为待定。  
![\[选择了一个活动建议，并在控制台中突出显示了“应用”按钮及其选项。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_Apply_Defer.png)

   将显示一个确认窗口。

1. 选择**确认应用**以应用建议。此窗口将确认资源是需要自动重启还是手动重启才能使更改生效。

   以下示例显示了立即应用建议的确认窗口。  
![\[控制台中用于立即应用建议的确认窗口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_ApplyImmediately.png)

   以下示例显示了计划在下一个维护时段中应用建议的确认窗口。  
![\[控制台中计划在下一个维护时段中应用建议的确认窗口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_Defer.png)

   当应用的建议成功或失败时，横幅会显示一条消息。

   以下示例显示了带有成功消息的横幅。  
![\[控制台中的一条横幅，其中显示了该消息以及将应用该建议的资源数量\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendation-Apply-Banner.png)

   以下示例显示了带有失败消息的横幅。  
![\[控制台中的一条横幅，其中显示了该消息以及包含未能应用建议的资源和失败的原因\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendation-Apply-Banner-failure.png)

## RDS API
<a name="USERRecommendationsManage.ApplyRecommendation-API"></a>

**使用 Amazon RDS API 应用基于配置的 RDS 建议**

1. 使用 [DescribeDBRecommendations](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBRecommendations.html) 操作。输出中的 `RecommendedActions` 可以有一个或多个建议的操作。

1. 对步骤 1 中的每个建议操作使用 [RecommendedAction](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RecommendedAction.html) 对象。输出包含 `Operation` 和 `Parameters`。

   以下示例显示了带有一个建议操作的输出。

   ```
       "RecommendedActions": [
           {
               "ActionId": "0b19ed15-840f-463c-a200-b10af1b552e3",
               "Title": "Turn on auto backup", // localized
               "Description": "Turn on auto backup for my-mysql-instance-1", // localized
               "Operation": "ModifyDbInstance",
               "Parameters": [
                   {
                       "Key": "DbInstanceIdentifier",
                       "Value": "my-mysql-instance-1"
                   },
                   {
                       "Key": "BackupRetentionPeriod",
                       "Value": "7"
                   }
               ],
               "ApplyModes": ["immediately", "next-maintenance-window"],
               "Status": "applied"
           },
           ... // several others
       ],
   ```

1. 对步骤 2 的输出中的每个建议操作使用 `operation` 并输入 `Parameters` 值。

1. 步骤 2 中的操作成功后，使用 [ModifyDBRecommendation](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBRecommendation.html) 操作修改建议状态。

# 忽略 Amazon RDS 建议
<a name="USERRecommendationsManage.DismissRecommendation"></a>

可以使用 Amazon RDS 控制台、AWS CLI 或 Amazon RDS API 忽略一个或多个 Amazon RDS 建议。

## 控制台
<a name="USERRecommendationsManage.DismissRecommendation-Console"></a>

**忽略一个或多个建议**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，执行以下任一操作：
   + 选择**建议**。

     此时将出现**建议**页面，其中包含所有建议的列表。
   + 选择**数据库**，然后在数据库页中为资源选择**建议**。

     详细信息显示在所选建议的**建议**选项卡中。
   + 在**建议**页或**数据库**页的**建议**选项卡中，为活动的建议选择**检测**。

     建议详细信息页面显示受影响资源的列表。

1. 在建议详细信息页面中选择一个或多个建议，或者选择一个或多个受影响的资源，然后选择**忽略**。

   以下示例显示了**建议**页面，其中选定了多个要取消的活动建议。  
![\[控制台中选定了一些活动建议并突出显示了忽略按钮\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_Dismiss.png)

   当选定的一个或多个建议被忽略时，横幅会显示一条消息。

   以下示例显示了带有成功消息的横幅。  
![\[控制台中的一条横幅，其中显示了该消息以及成功忽略该建议的资源数量\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendation-Dismiss-Banner.png)

   以下示例显示了带有失败消息的横幅。  
![\[控制台中的一条横幅，其中显示了该消息以及未能忽略建议的资源\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendation-Dismiss-Banner-failure.png)

## CLI
<a name="USERRecommendationsManage.DismissRecommendation-Cli"></a>

**使用 AWS CLI 忽略 RDS 建议**

1. 运行 `aws rds describe-db-recommendations --filters "Name=status,Values=active"` 命令。

   输出提供了处于 `active` 状态的建议列表。

1. 查找要从步骤 1 中忽略的建议的 `recommendationId`。

1. 从步骤 2 中使用 `recommendationId` 运行命令 `>aws rds modify-db-recommendation --status dismissed --recommendationId <ID>` 以忽略建议。

## RDS API
<a name="USERRecommendationsManage.DismissRecommendation-API"></a>

要使用 Amazon RDS API 忽略 RDS 建议，请使用 [ModifyDBRecommendation](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBRecommendation.html) 操作。

# 将已忽略的 Amazon RDS 建议修改为活动的建议
<a name="USERRecommendationsManage.DismissToActiveRecommendation"></a>

可以使用 Amazon RDS 控制台、AWS CLI 或 Amazon RDS API，将一个或多个已忽略的 Amazon RDS 建议移至活动的建议。

## 控制台
<a name="USERRecommendationsManage.DismissToActiveRecommendation-Console"></a>

**将一个或多个已被忽略的建议移至活动的建议**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，执行以下任一操作：
   + 选择**建议**。

     **建议**页面显示按您账户中所有资源的严重性排序的建议列表。
   + 选择**数据库**，然后在数据库页中为资源选择**建议**。

     **建议**选项卡显示所选资源的建议及其详细信息。

1. 从列表中选择一个或多个已忽略的建议，然后选择**移至活动状态**。  
![\[控制台中选定了一些忽略的建议，并突出显示了“移至活动状态”按钮\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendations_DismissToActive.png)

   当将所选建议从已忽略状态移至活动状态时，横幅会显示一条成功或失败消息。

   以下示例显示了带有成功消息的横幅。  
![\[控制台中的一条横幅，其中显示成功从已忽略状态移至活动状态的资源数量\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendation-DismissToActive-Banner.png)

   以下示例显示了带有失败消息的横幅。  
![\[控制台中的一条横幅，其中显示了该消息以及未能从已忽略状态移至活动建议的资源\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Recommendation-DismissToActive-Banner-Failure.png)

## CLI
<a name="USERRecommendationsManage.DismissToActiveRecommendation-Cli"></a>

**使用 AWS CLI 将已忽略的 RDS 建议更改为活动建议**

1. 运行 `aws rds describe-db-recommendations --filters "Name=status,Values=dismissed"` 命令。

   输出提供了处于 `dismissed` 状态的建议列表。

1. 查找要从步骤 1 中更改状态的建议的 `recommendationId`。

1. 从步骤 2 中使用 `recommendationId` 运行命令 `>aws rds modify-db-recommendation --status active --recommendationId <ID>` 以更改为活动建议。

## RDS API
<a name="USERRecommendationsManage.DismissToActiveRecommendation-API"></a>

要使用 Amazon RDS API 将已忽略的 RDS 建议更改为活动建议，请使用 [ModifyDBRecommendation](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBRecommendation.html) 操作。

# Amazon RDS 中的建议参考
<a name="USERRecommendationsManage.RecommendationReference"></a>

Amazon RDS 在创建或修改资源时，为资源生成建议。可以在下表中找到 Amazon RDS 中的建议示例。


| 类型 | 描述 | 建议 | 需要停机 | 附加信息 | 
| --- | --- | --- | --- | --- | 
|  磁性介质卷正在使用中  |  您的数据库实例在使用磁性介质存储。对于大多数数据库实例，不建议使用磁性介质存储。选择其它存储类型：通用型（SSD）或预调配 IOPS。  |  选择其它存储类型：通用型（SSD）或预调配 IOPS。  |  是  |  Amazon EC2 文档中的[上一代卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html#vol-type-prev)。  | 
|  资源自动备份已关闭  |  您的数据库实例没有开启自动备份。建议使用自动备份，因为它们可以实现数据库实例的时间点恢复。  |  开启自动备份，保留期最长为 14 天。  |  是  |  [启用自动备份](USER_WorkingWithAutomatedBackups.Enabling.md) AWS 数据库博客上的 [Demystifying Amazon RDS backup storage costs](https://aws.amazon.com/blogs/database/demystifying-amazon-rds-backup-storage-costs/)   | 
|  需要引擎次要版本升级  |  您的数据库资源未运行最新次要数据库引擎版本。最新的次要版本包含最新的安全修复和其它改进。  |  升级到最新的引擎版本。  |  是  |  [升级数据库实例 引擎版本](USER_UpgradeDBInstance.Upgrading.md)  | 
|  增强监控已关闭  |  您的数据库资源未开启增强监控。增强监控提供用于监控和故障排除的实时操作系统指标。  |  打开增强监控。  |  否  |  [使用增强监控来监控操作系统指标](USER_Monitoring.OS.md)  | 
|  存储加密已关闭  |  Amazon RDS 支持使用您在 AWS Key Management Service（AWS KMS）中管理的密钥对所有数据库引擎进行静态加密。在采用 Amazon RDS 加密的活动数据库实例上，静态存储在存储中的数据会加密，类似于自动备份、只读副本和快照。 如果在创建数据库实例时未开启加密，则需要先创建并还原数据库实例的解密快照的加密副本，然后再开启加密。  |  为您的数据库实例开启静态数据加密。  |  是  |  [Amazon RDS 中的安全性](UsingWithRDS.md) [复制 Amazon RDS 的数据库快照](USER_CopySnapshot.md)  | 
| 性能详情已关闭 | 性能详情用于监控数据库实例负载，有助于您分析和解决数据库性能问题。建议您开启性能详情。 | 开启性能详情。 | 否 |  [在 Amazon RDS 上使用性能详情监控数据库负载](USER_PerfInsights.md)  | 
| 数据库实例已关闭存储自动扩缩 | 您的数据库实例没有开启存储自动扩缩功能。当数据库工作负载增加时，RDS 存储自动扩缩会自动扩展存储容量，且无停机时间。 | 使用指定的最大存储阈值启用 Amazon RDS 存储自动扩缩 | 否 |  [使用 Amazon RDS 存储自动扩展功能自动管理容量](USER_PIOPS.Autoscaling.md)  | 
|  需要更新 RDS 资源主要版本 | 不支持使用数据库引擎当前主要版本的数据库。建议您升级到包含新功能和增强功能的最新主要版本。 | 升级至数据库引擎的最新主要版本。 | 是 | [升级数据库实例 引擎版本](USER_UpgradeDBInstance.Upgrading.md) [使用 Amazon RDS 蓝绿部署进行数据库更新](blue-green-deployments.md)  | 
| 需要更新 RDS 资源实例类 | 您的数据库实例正在运行更早代次的数据库实例类。我们已经将更早代次的数据库实例类替换为成本和/或性能更高的数据库实例类。建议您使用更新代次的数据库实例类运行数据库实例。 | 升级数据库实例类。 | 是 |  [数据库实例类支持的数据库引擎](Concepts.DBInstanceClass.Support.md)  | 
| RDS 资源使用的是随附许可证的终止支持引擎版本 | 建议您将主要版本升级到 Amazon RDS 支持的最新引擎版本，以继续使用当前的许可证支持。当前许可证不支持数据库的引擎版本。 | 建议您将数据库升级到 Amazon RDS 中支持的最新版本，以便继续使用许可模型。 | 是 |  [Oracle 主要版本升级](USER_UpgradeDBInstance.Oracle.Major.md)  | 
| 数据库实例未使用多可用区部署 | 建议您使用多可用区部署。多可用区部署可增强数据库实例的可用性和持久性。 | 为受影响的数据库实例设置多可用区 | 否 在此更改期间，不会停机。不过，可能会对性能产生影响。有关更多信息，请参阅 [将 Amazon RDS 的数据库实例转换为多可用区部署](Concepts.MultiAZ.Migrating.md)。  |  [Amazon RDS Multi-AZ 的定价](https://aws.amazon.com/rds/features/multi-az/#Pricing)  | 
| 数据库内存参数与默认值不同 | 数据库实例的内存参数与默认值明显不同。这些设置可能会影响性能并导致错误。 建议您将数据库实例的自定义内存参数重置为数据库参数组中的默认值。  | 将内存参数重置为其默认值。 | 否 |   AWS 数据库博客上的 [Best practices for configuring performance parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)  | 
| `InnoDB_Change_Buffering` 参数使用的值小于最佳值 | 更改缓冲将允许 MySQL 数据库实例推迟维护二级索引所需的一些写入操作。此功能在磁盘速度较慢的环境中非常有用。更改缓冲配置稍微提高了数据库性能，但在升级期间导致了崩溃恢复延迟和长时间关机。在 MySQL 版本 8.4 中默认设置为 `OFF`。 | 在数据库参数组中将 `InnoDB_Change_Buffering` 参数值设置为 `NONE`。 | 否 | AWS 数据库博客上的 [Best practices for configuring performance parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)  | 
| 查询缓存参数已开启 | 当更改要求清除查询缓存时，您的数据库实例将显示为停滞状态。大多数工作负载不会受益于查询缓存。查询缓存已从 MySQL 8.0 及更高版本中删除。建议您将 query\$1cache\$1type 参数设置为 0。 | 在数据库参数组中将 `query_cache_type` 参数值设置为 `0`。 | 是 |  AWS 数据库博客上的 [Best practices for configuring performance parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)  | 
| `log_output` 参数设置为表 | 如果 `log_output` 设置为 `TABLE`，则使用的存储比 `log_output` 设置为 `FILE` 时更多。建议您将此参数设置为 `FILE`，以避免达到存储大小限制。在 MySQL 8.4 及更高版本中默认设置为 `FILE`。 | 在数据库参数组中将 `log_output` 参数值设置为 `FILE`。 | 否 |  [MySQL 数据库日志文件](USER_LogAccess.Concepts.MySQL.md)  | 
| 参数组不使用大页 | 大页可以提高数据库的可扩展性，但您的数据库实例不使用大页。建议您在数据库实例的数据库参数组中将 `use_large_pages` 参数值设置为 `ONLY`。 | 在数据库参数组中将 `use_large_pages` 参数值设置为 `ONLY`。 | 是 | [为 RDS for Oracle 实例开启大页](Oracle.Concepts.HugePages.md)  | 
| `autovacuum` 参数已关闭 | 数据库实例 的 autovacuum 参数已关闭. 关闭 autovacuum 会增加表和索引膨胀并影响性能。 建议您在数据库参数组中开启 autovacuum。  | 在数据库参数组中开启 autovacuum 参数。 | 否 |  AWS 数据库博客上的 [Understanding autovacuum in Amazon RDS for PostgreSQL environments](https://aws.amazon.com/blogs/database/understanding-autovacuum-in-amazon-rds-for-postgresql-environments/)  | 
| `synchronous_commit` 参数已关闭 | 关闭 `synchronous_commit` 参数后，数据库崩溃可能会导致数据丢失。数据库的持久性受到威胁。 建议您开启此 `synchronous_commit` 参数。  | 在数据库参数组中开启 `synchronous_commit` 参数。 | 是 |  AWS 数据库博客上的 [Amazon Aurora PostgreSQL parameters: Replication, security, and logging](https://aws.amazon.com/blogs/database/amazon-aurora-postgresql-parameters-part-2-replication-security-and-logging/)。  | 
| `track_counts` 参数已关闭 | 当 `track_counts` 参数处于关闭状态时，数据库不会收集数据库活动统计数据。Autovacuum 需要这些统计信息才能正常工作。 建议您将 `track_counts` 参数设置为 `1`。 | 将 `track_counts` 数据设置为 `1`。 | 否 |  [PostgreSQL 的运行时统计数据](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-COUNTS)   | 
| `enable_indexonlyscan` 参数已关闭 | 关闭仅限索引的扫描计划类型时，查询计划程序或优化程序无法使用该类型。 建议您将 `enable_indexonlyscan` 参数值设置为 `1`。 | 将 `enable_indexonlyscan` 参数值设置为 `1`。 | 否 |  [PostgreSQL 的计划程序方法配置](https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-ENABLE-INDEXONLYSCAN)  | 
| `enable_indexscan` 参数已关闭 | 关闭索引扫描计划类型时，查询计划程序或优化程序无法使用该类型。 建议您将 `enable_indexscan` 值设置为 `1`。 | 将 `enable_indexscan` 参数值设置为 `1`。 | 否 |  [PostgreSQL 的计划程序方法配置](https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-ENABLE-INDEXONLYSCAN)  | 
| `innodb_flush_log_at_trx` 参数已关闭 | 您的数据库实例的 `innodb_flush_log_at_trx` 参数值不是安全的值。此参数控制向磁盘提交操作的持久性。 建议您将 `innodb_flush_log_at_trx` 参数设置为 `1`。 | 将 `innodb_flush_log_at_trx` 参数值设置为 `1`。 | 否 |  AWS 数据库博客上的 [Best practices for configuring performance parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)  | 
| `sync_binlog` 参数已关闭 | 在数据库实例中确认事务提交之前，不会强制将二进制日志同步到磁盘。 建议您将 `sync_binlog` 参数值设置为 `1`。 | 将 `sync_binlog` 参数值设置为 `1`。 | 否 | AWS 数据库博客上的 [Best practices for configuring replication parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/) | 
| `innodb_stats_persistent` 参数已关闭 | 您的数据库实例未配置为将 InnoDB 统计信息持久保存到磁盘上。如果不存储统计数据，则每次实例重启和访问表时都会重新计算统计数据。这会导致查询执行计划的差异。您可以在表级别修改此全局参数的值。 建议您将 `innodb_stats_persistent` 参数值设置为 `ON`。 | 将 `innodb_stats_persistent` 参数值设置为 `ON`。 | 否 | AWS 数据库博客上的 [Best practices for configuring performance parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)  | 
| `innodb_open_files` 参数较低 | `innodb_open_files` 参数控制 InnoDB 一次可打开的文件数量。当 mysqld 运行时，InnoDB 会打开所有日志和系统表空间文件。 对于您的数据库实例，InnoDB 一次可打开的最大文件数的值较低。建议您将 `innodb_open_files` 参数设置为最小值 `65`。 | 将 `innodb_open_files` 参数设置为最小值 `65`。 | 是 | [InnoDB 对于 MySQL 打开的文件](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_open_files)  | 
| `max_user_connections` 参数较低 | 对于您的数据库实例，每个数据库账户的最大同时连接数的值较低。 建议您将 `max_user_connections` 参数设置为大于 `5` 的数字。 | 将 `max_user_connections` 参数的值增加到大于 `5` 的数字。 | 是 | [设置 MySQL 的账户资源限制](https://dev.mysql.com/doc/refman/8.0/en/user-resources.html) | 
| 只读副本在可写模式下打开 | 您的数据库实例的只读副本处于可写模式，这允许来自客户端的更新。 建议您将 `read_only` 参数设置为 `TrueIfReplica`，这样只读副本就不会处于可写模式。 | 将 `read_only` 参数值设置为 `TrueIfReplica`。 | 否 | AWS 数据库博客上的 [Best practices for configuring replication parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-2-parameters-related-to-replication/)  | 
| `innodb_default_row_format` 参数设置不安全 | 您的数据库实例遇到一个已知问题：当索引超过 767 字节时，在低于 8.0.26 的 MySQL 版本中创建且 `row_format` 设置为 `COMPACT` 或 `REDUNDANT` 的表将不可访问且无法恢复。 建议您将 `innodb_default_row_format` 参数值设置为 `DYNAMIC`。 | 将 `innodb_default_row_format` 参数值设置为 `DYNAMIC`。 | 否 | [MySQL 8.0.26 中的变化](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-26.html#mysqld-8-0-26-bug) | 
| `general_logging` 参数已开启 | 您的数据库实例已开启常规日志记录。在排查数据库问题时，此设置非常有用。但是，开启常规日志记录会增加 I/O 操作量和分配的存储空间量，这可能导致争用和性能降级。 请检查您对常规日志记录使用情况的要求。建议您将 `general_logging` 参数值设置为 `0`。 | 请检查您对常规日志记录使用情况的要求。如果它不是强制性的，建议您将 `general_logging` 参数值设置为 `0`。 | 否 |  [RDS for MySQL 数据库日志概览](USER_LogAccess.MySQL.LogFileSize.md)  | 
| RDS 实例的系统内存容量预调配不足 | 建议您调整查询以使用更少的内存，或者使用所分配内存更高的数据库实例类型。当实例内存不足时，数据库性能就会受到影响。 | 使用内存容量更高的数据库实例 | 是 |  AWS 数据库博客上的 [Scaling Your Amazon RDS Instance Vertically and Horizontally](https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/) [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [Amazon RDS 定价](https://aws.amazon.com/rds/pricing/)  | 
| RDS 实例的系统 CPU 容量预调配不足 | 建议您调整查询来使用更少的 CPU，或修改数据库实例来使用所分配的 vCPU 更高的数据库实例类。当运行数据库实例的 CPU 容量不足时，数据库性能可能会下降。 | 使用 CPU 容量更高的数据库实例 | 是 |  AWS 数据库博客上的 [Scaling Your Amazon RDS Instance Vertically and Horizontally](https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/) [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [Amazon RDS 定价](https://aws.amazon.com/rds/pricing/)  | 
| RDS 资源未正确地利用连接池 | 建议您启用 Amazon RDS 代理，以便高效地池化和共享现有数据库连接。如果您已经在为数据库使用代理，请正确地配置代理，来改善多个数据库实例之间的连接池和负载均衡。RDS 代理有助于降低连接耗尽和停机的风险，同时提高可用性和可扩展性。 | 启用 RDS 代理或修改现有的代理配置 | 否 |  AWS 数据库博客上的 [Scaling Your Amazon RDS Instance Vertically and Horizontally](https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/) [Amazon RDS 代理](rds-proxy.md) [Amazon RDS 代理定价](https://aws.amazon.com/rds/proxy/pricing/)  | 
| RDS 实例正在创建过多的临时对象 | 建议您调整工作负载以防止创建过多的临时对象，或者切换到支持优化读取的 RDS 实例类。RDS 优化型读取功能可提高涉及大量临时对象和/或大型临时对象的工作负载的数据库性能。评估您的工作负载，以确定使用具有 RDS 优化型读取功能的实例是否有利于您的数据库工作负载。 | 使用带 RDS 优化型读取功能的数据库实例类型 | 是 |  [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [使用 Amazon RDS 优化型读取功能提高 RDS for MySQL 的查询性能](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-optimized-reads.html) [使用 Amazon RDS 优化型读取功能提高 RDS for MariaDB 的查询性能](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-optimized-reads-mariadb.html) [使用 Amazon RDS 优化型读取功能提高 RDS for PostgreSQL 的查询性能](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PostgreSQL.optimizedreads.html)  | 
| RDS 实例的系统 IOPS 容量预调配不足 | 我们建议调整数据库工作负载以降低 IOPS，或者将数据库实例纵向扩展到具有更高的默认 IOPS 限制的类型。当前数据库实例无法支持预调配 IOPS，或者数据库工作负载具有较高的 IOPS 利用率。 | 使用默认 IOPS 限制更高的数据库实例类型 | 是 |  [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [Amazon RDS 数据库实例存储](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) [数据库负载](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)  | 
| RDS 实例具有预调配不足的 Amazon EBS 卷 | 我们建议调整数据库工作负载以降低 IOPS 或增加数据库的预调配 IOPS。当 IOPS 利用率接近预调配 IOPS 时，数据库性能可能会下降。 | 为数据库实例预调配更多 IOPS | 是 |  [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [Amazon RDS 数据库实例存储](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) [数据库负载](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)  | 
| RDS 实例的吞吐能力预调配不足 | 我们建议调整数据库工作负载以降低吞吐量或增加数据库的预调配吞吐量。当吞吐量利用率接近预调配吞吐量时，数据库性能可能会受到影响。 | 为数据库实例预调配更多吞吐量 | 是 |  [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [Amazon RDS 数据库实例存储](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) [数据库负载](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)  | 
| RDS 实例的 EBS I/O 预置不足 | 我们建议调整数据库工作负载来减少 I/O 操作，或者修改数据库实例来使用 Amazon RDS io2 Block Express 卷，这些卷专为需要高性能、高吞吐量和低延迟的数据库工作负载而设计。在当前工作负载下，数据库可能无法以所需的速率处理 I/O 操作，这可能导致性能下降。 | 将 Amazon RDS io2 Block Express 卷用于 RDS 实例 | 否 |  [Amazon RDS 数据库实例存储](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) [Amazon RDS 的 Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html) 《Amazon EBS 用户指南》中的 [Provisioned IOPS SSD volumes](https://docs.aws.amazon.com/ebs/latest/userguide/provisioned-iops.html)  | 

# 在 Amazon RDS 控制台中查看指标
<a name="USER_Monitoring"></a>

Amazon RDS 与 Amazon CloudWatch 集成以显示 RDS 控制台中的各种 RDS 数据库实例指标。有关这些指标的说明，请参阅 [Amazon RDS 的指标参考](metrics-reference.md)。

对于数据库实例，将监控以下类别的指标：
+ **CloudWatch** – 显示您可以在 RDS 控制台中访问的 RDS 的 Amazon CloudWatch 指标。您也可以在 CloudWatch 控制台中访问这些指标。每个指标均包括一个图形，显示特定时间范围内监控的指标。有关 CloudWatch 指标的列表，请参阅 [Amazon RDS 的 Amazon CloudWatch 指标](rds-metrics.md)。
+ **增强监控** - 显示 RDS 数据库实例打开增强监控时操作系统指标的摘要。RDS 将增强监控中的指标传输到您的 Amazon CloudWatch Logs 账户。每个操作系统指标均包括一个图形，显示特定时间范围内监控的指标。有关概述，请参阅[使用增强监控来监控操作系统指标](USER_Monitoring.OS.md)。有关增强监控指标的列表，请参阅 [增强监控中的操作系统指标](USER_Monitoring-Available-OS-Metrics.md)。
+ **OS 进程列表** – 显示您的数据库实例中运行的每个进程的详细信息。
+ **Performance Insights** - 打开 中数据库实例的 Amazon RDS Performance Insights 控制面板。有关 Performance Insights 概述，请参阅 [在 Amazon RDS 上使用性能详情监控数据库负载](USER_PerfInsights.md)。有关 Performance Insights 指标的列表，请参阅 [Amazon RDS 性能详情的 Amazon CloudWatch 指标](USER_PerfInsights.Cloudwatch.md)。

Amazon RDS 现在在性能详情控制面板中提供性能详情和 CloudWatch 指标的合并视图。必须为您的数据库实例启用性能详情，才能使用此视图。您可以在**监控**选项卡中选择新的监控视图，也可以在导航窗格中选择**性能详情**。要查看有关选择此视图的说明，请参阅[使用性能详情控制面板查看组合指标](Viewing_Unifiedmetrics.md)。

# 使用性能详情控制面板查看组合指标
<a name="Viewing_Unifiedmetrics"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

Amazon RDS 现在在性能详情控制面板中提供数据库实例的性能详情和 CloudWatch 指标的合并视图。您可以使用预配置的控制面板或创建自定义控制面板。预配置的控制面板提供最常用的指标，以帮助诊断数据库引擎的性能问题。或者，您可以创建一个自定义控制面板，其中包含数据库引擎的可满足分析需求的指标。然后，将此控制面板用于您的 AWS 账户中该数据库引擎类型的所有数据库实例。

您可以在**监控**选项卡中选择监控视图，也可以在导航窗格中选择**性能详情**。

必须为数据库实例开启性能详情，才能在性能详情控制面板中查看组合指标。有关开启性能详情的更多信息，请参阅[为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)。

在以下各节中，您可以了解使用新版和旧版监控视图来显示性能详情和 CloudWatch 指标。

**Topics**
+ [从“监控”选项卡中选择新版监控视图](Viewing_Unifiedmetrics.MonitoringTab.md)
+ [从性能详情页面中选择新版监控视图](Viewing_Unifiedmetrics.PInavigationPane.md)
+ [使用性能详情创建自定义控制面板](Viewing_Unifiedmetrics.PIcustomizeMetricslist.md)
+ [使用性能详情选择预配置控制面板](Viewing_Unifiedmetrics.PI-preconfigured-dashboard.md)

# 从“监控”选项卡中选择新版监控视图
<a name="Viewing_Unifiedmetrics.MonitoringTab"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

从 Amazon RDS 控制台中，您可以选择新版监控视图来查看数据库实例的性能详情和 CloudWatch 指标。

**在“监控”选项卡中选择新版监控视图**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**数据库**。

1. 选择要监控的数据库实例的名称。

1. 向下滚动并选择**监控**选项卡。

   此时会出现一条横幅，其中包含选择新监控视图的选项。以下示例显示了选择新监控视图的横幅。  
![\[显示导航到新监控视图的横幅。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/NewMonitoringViewOption.png)

1. 选择**转到新的监控视图**以打开性能详情控制面板，其中包含数据库实例的性能详情和 CloudWatch 指标。

1. （可选）如果对数据库实例关闭了性能详情，则会出现一个横幅，其中包含修改数据库集群和开启性能详情的选项。

   以下示例显示了在**监控**选项卡中修改数据库集群的横幅。  
![\[修改数据库实例以开启性能详情。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Monitoring_modifyInstnc_banner.png)

   选择**修改**以修改数据库集群并开启性能详情。有关开启性能详情的更多信息，请参阅[为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)

# 从性能详情页面中选择新版监控视图
<a name="Viewing_Unifiedmetrics.PInavigationPane"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

从 Amazon RDS 控制台中，您可以选择新版监控视图来查看数据库实例的性能详情和 CloudWatch 指标。

**使用导航窗格中的性能详情选择新版监控视图**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例，以便查看性能详情控制面板，其中显示数据库实例的性能详情和 CloudWatch 指标。  
![\[合并的性能详情和 CloudWatch 指标控制面板。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Monitoring_UnifiedDashboard.png)

# 使用性能详情创建自定义控制面板
<a name="Viewing_Unifiedmetrics.PIcustomizeMetricslist"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

在新的监控视图中，您可以创建自定义控制面板，其中具有满足分析要求所需的指标。

您可以通过为数据库实例选择性能详情和 CloudWatch 指标来创建自定义控制面板。您可以将此自定义控制面板用于 AWS 账户中属于相同数据库引擎类型的其他数据库实例。

**注意**  
自定义控制面板可支持多达 50 个指标。

使用小组件设置菜单编辑或删除控制面板，并移动小组件窗口或调整其大小。

**使用导航窗格中的性能详情创建自定义控制面板**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

1. 向下滚动到窗口中的**指标**选项卡。

1. 从下拉列表中选择自定义控制面板。以下显示了自定义控制面板的创建过程。  
![\[还没有小组件的自定义指标控制面板。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Monitoring_custmDashbrd_addWidget.png)

1. 选择**添加小组件**以打开**添加小组件**窗口。您可以在此窗口中打开和查看可用的操作系统（OS）指标、数据库指标和 CloudWatch 指标。

   以下示例显示了**添加小组件**窗口以及指标。  
![\[添加小组件窗口中的指标选项。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Monitoring_AddWidget.png)

1. 选择要在控制面板中查看的指标，然后选择**添加小组件**。您可以使用搜索字段来查找特定的指标。

   所选指标显示在您的控制面板上。

1. （可选）如果您要修改或删除控制面板，请选择小组件右上角的设置图标，然后在菜单中选择以下操作之一。
   + **编辑** - 修改窗口中的指标列表。为控制面板选择指标后，选择**更新小组件**。
   + **删除** - 删除小组件。在确认窗口中选择**删除**。

# 使用性能详情选择预配置控制面板
<a name="Viewing_Unifiedmetrics.PI-preconfigured-dashboard"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

您可以使用预配置控制面板查看最常用的指标。此控制面板有助于诊断数据库引擎的性能问题，并将平均恢复时间从几小时缩短到几分钟。

**注意**  
无法编辑此控制面板。

**使用导航窗格中的性能详情选择预配置控制面板**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

1. 向下滚动到窗口中的**指标**选项卡

1. 从下拉列表中选择预配置的控制面板。

   您可以在控制面板中查看数据库实例的指标。以下示例显示了一个预配置指标控制面板。  
![\[预配置指标控制面板。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Monitoring_preconfigDashboard.png)

# 使用 Amazon CloudWatch 监控 Amazon RDS 指标
<a name="monitoring-cloudwatch"></a>

Amazon CloudWatch 是一个指标存储库。此存储库可从 Amazon RDS 收集原始数据，并将数据处理为易读的近乎实时的指标。有关发送到 CloudWatch 的 Amazon RDS 指标的完整列表，请参阅 [Amazon RDS 的指标参考](https://docs.aws.amazon.com/en_us/AmazonRDS/latest/UserGuide/metrics-reference.html)。

要大规模分析数据库性能并对其进行故障排除，请使用 [CloudWatch 数据库洞察](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.html)。

**Topics**
+ [Amazon RDS 和 Amazon CloudWatch 概述](#cw-metrics-overview)
+ [在 CloudWatch 控制台和 AWS CLI 中查看数据库实例指标](metrics_dimensions.md)
+ [将 Performance Insights 指标导出到 CloudWatch](PI_metrics_export_CW.md)
+ [创建 CloudWatch 警报以监控 Amazon RDS](creating_alarms.md)
+ [教程：为 Amazon RDS 的多可用区数据库集群副本滞后创建 Amazon CloudWatch 警报](multi-az-db-cluster-cloudwatch-alarm.md)

## Amazon RDS 和 Amazon CloudWatch 概述
<a name="cw-metrics-overview"></a>

默认情况下，以 1 分钟为间隔自动将 Amazon RDS 指标数据发送到 CloudWatch。例如，`CPUUtilization` 指标记录了一段时间内数据库实例的 CPU 使用率百分比。时间段为 60 秒（1 分钟）的数据点可用 15 天。这意味着您能够访问历史信息，了解您的 Web 应用程序或服务的执行情况。

现在，您可以将 Performance Insights 指标控制面板从 Amazon RDS 导出到 Amazon CloudWatch。您可以将预配置或自定义的指标控制面板导出为新的控制面板，也可以将其添加到现有的 CloudWatch 控制面板中。导出的控制面板可在 CloudWatch 控制台中查看。有关如何将 Performance Insights 指标控制面板导出到 CloudWatch 的更多信息，请参阅[将 Performance Insights 指标导出到 CloudWatch](PI_metrics_export_CW.md)。

如下图所示，您可以为 CloudWatch 指标设置警报。例如，您可能会创建一个警报，在实例的 CPU 使用率超过 70% 时发出信号。您可以配置 Amazon Simple Notification Service 以在超过阈值时向您发送电子邮件。

![\[AWS CloudWatch 中的 RDS 指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/rds-cloudwatch.png)


Amazon RDS 向 Amazon CloudWatch 发布以下类型的指标：
+ RDS 数据库实例的指标

  有关这些指标的表格，请参阅 [Amazon RDS 的 Amazon CloudWatch 指标](rds-metrics.md)。
+ Performance Insights 指标

  有关这些指标的表格，请参阅 [Amazon RDS 性能详情的 Amazon CloudWatch 指标](USER_PerfInsights.Cloudwatch.md) 和 [性能详情计数器指标](USER_PerfInsights_Counters.md)。
+ 增强监控指标（发布到 Amazon CloudWatch Logs）

  有关这些指标的表格，请参阅 [增强监控中的操作系统指标](USER_Monitoring-Available-OS-Metrics.md)。
+ 您的 AWS 账户中 Amazon RDS 服务配额的用量指标

  有关这些指标的表格，请参阅 [Amazon RDS 的 Amazon CloudWatch 用量指标](rds-metrics.md#rds-metrics-usage)。有关 Amazon RDS 配额的更多信息，请参阅 [Amazon RDS 的配额和限制](CHAP_Limits.md)。

有关 CloudWatch 的更多信息，请参阅 *Amazon CloudWatch 用户指南* 中的[什么是 Amazon CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)。有关 CloudWatch 指标保留的更多信息，请参阅[指标保留](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#metrics-retention)。

# 在 CloudWatch 控制台和 AWS CLI 中查看数据库实例指标
<a name="metrics_dimensions"></a>

在下文中，您可以了解有关如何使用 CloudWatch 查看数据库实例指标的详细信息。有关使用 CloudWatch Logs 实时监控数据库实例的操作系统指标的信息，请参阅[使用增强监控来监控操作系统指标](USER_Monitoring.OS.md)。

在使用 Amazon RDS 资源时，Amazon RDS 每分钟向 Amazon CloudWatch 发送一次指标和维度。

现在，您可以将 Performance Insights 指标控制面板从 Amazon RDS 导出到 Amazon CloudWatch，然后在 CloudWatch 控制台中查看这些指标。有关如何将 Performance Insights 指标控制面板导出到 CloudWatch 的更多信息，请参阅[将 Performance Insights 指标导出到 CloudWatch](PI_metrics_export_CW.md)。

使用以下过程在 CloudWatch 控制台和 CLI 中查看 Amazon RDS 的指标。

## 控制台
<a name="metrics_dimensions.console"></a>

**使用 Amazon CloudWatch 控制台查看指标**

指标的分组首先依据服务命名空间，然后依据每个命名空间内的各种维度组合。

1. 访问 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

   将显示 CloudWatch 概览主页。  
![\[CloudWatch 概述页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/monitoring-overviewpage-console2.png)

1. 如果需要，更改 AWS 区域。从导航栏中，选择您的 AWS 资源所在的 AWS 区域。有关更多信息，请参阅[区域和端点](https://docs.aws.amazon.com/general/latest/gr/rande.html)。

1. 在导航窗格中，选择 **Metrics**（指标），然后选择 **All metrics**（所有指标）。  
![\[选择指标命名空间\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/cw-all-metrics.png)

1. 向下滚动并选择 **RDS** 指标命名空间。

   该页面将显示 Amazon RDS 维度。有关这些维度的说明，请参阅 [Amazon RDS 的 Amazon CloudWatch 维度](dimensions.md)。  
![\[选择指标命名空间\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/rds-monitoring-01.png)

1. 选择指标维度，例如，**按数据库类**。  
![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/metrics-by-instance-class.png)

1. 执行以下任一操作：
   + 要对指标进行排序，请使用列标题。
   + 要为指标绘制图表，请选中该指标旁的复选框。
   + 要按资源进行筛选，请选择资源 ID，然后选择**添加到搜索**。
   + 要按指标进行筛选，请选择指标名称，然后选择**添加到搜索**。

   以下示例筛选 **db.t3.medium** 类并绘制 **CPUUtilization** 指标。  
![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/rds-monitoring-03.png)

## AWS CLI
<a name="metrics_dimensions.CLI"></a>

若要通过使用 AWS CLI 获取指标信息，请使用 CloudWatch 命令 [https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html)。在以下示例中，您将列出 `AWS/RDS` 命名空间中的所有指标。

```
aws cloudwatch list-metrics --namespace AWS/RDS
```

要获取指标数据，请使用命令 [https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html)。

以下示例以 5 分钟为间隔，获取实例 `my-instance` 在特定 24 小时时段内的 `CPUUtilization` 统计数据。

使用以下内容创建 JSON 文件 `CPU_metric.json`。

```
 1. {
 2.    "StartTime" : "2023-12-25T00:00:00Z",
 3.    "EndTime" : "2023-12-26T00:00:00Z",
 4.    "MetricDataQueries" : [{
 5.      "Id" : "cpu",	    
 6.      "MetricStat" : {
 7. 	   "Metric" : {	  
 8.   	     "Namespace" : "AWS/RDS",
 9.   	     "MetricName" : "CPUUtilization",
10.   	     "Dimensions" : [{ "Name" : "DBInstanceIdentifier" , "Value" : my-instance}]
11. 	   },  
12.        "Period" : 360,
13.        "Stat" : "Minimum" 
14.      }
15.    }]
16. }
```

**Example**  
对于 Linux、macOS 或 Unix：  

```
1. aws cloudwatch get-metric-data \
2.     --cli-input-json file://CPU_metric.json
```
对于：Windows  

```
1. aws cloudwatch get-metric-data ^
2.      --cli-input-json file://CPU_metric.json
```
示例输出如下：  

```
{
    "MetricDataResults": [
        {
            "Id": "cpu",
            "Label": "CPUUtilization",
            "Timestamps": [
                "2023-12-15T23:48:00+00:00",
                "2023-12-15T23:42:00+00:00",
                "2023-12-15T23:30:00+00:00",
                "2023-12-15T23:24:00+00:00",
                ...
            ],
            "Values": [
                13.299778337027714,
                13.677507543049558,
                14.24976250395827,
                13.02521708695145,
                ...
            ],
            "StatusCode": "Complete"
        }
    ],
    "Messages": []
}
```
有关更多信息，请参阅《Amazon CloudWatch 用户指南**》中的[获取指标统计数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/getting-metric-data.html)。

# 将 Performance Insights 指标导出到 CloudWatch
<a name="PI_metrics_export_CW"></a>

Performance Insights 允许您将数据库实例的预配置或自定义指标控制面板导出到 Amazon CloudWatch。您可以将指标控制面板导出为新的控制面板，也可以将其添加到现有的 CloudWatch 控制面板中。当您选择将控制面板添加到现有 CloudWatch 控制面板时，可以创建标题标签，以便指标单独显示在 CloudWatch 控制面板的某个部分中。

您还可以在 CloudWatch 控制台中查看导出的指标控制面板。如果您在导出 Performance Insights 指标控制面板后向其添加了新指标，则必须再次导出此控制面板，然后才能在 CloudWatch 控制台中查看新指标。

您还可以在 Performance Insights 控制面板中选择一个指标小组件，然后在 CloudWatch 控制台中查看指标数据。

有关在 CloudWatch 控制台中查看指标的更多信息，请参阅 [在 CloudWatch 控制台和 AWS CLI 中查看数据库实例指标](metrics_dimensions.md)。

在以下各节中，将性能详情指标导出到 CloudWatch 作为新的或现有控制面板，并在 CloudWatch 中查看性能详情指标。

**Topics**
+ [将 Performance Insights 指标作为新的控制面板导出到 CloudWatch](PI_metrics_export_CW.new_dashboard.md)
+ [向现有的 CloudWatch 控制面板添加 Performance Insights 指标](PI_metrics_export_CW.existing_dashboard.md)
+ [在 CloudWatch 中查看 Performance Insights 指标小组件](PI_metrics_export_CW.individual_widget.md)

# 将 Performance Insights 指标作为新的控制面板导出到 CloudWatch
<a name="PI_metrics_export_CW.new_dashboard"></a>

从 Performance Insights 控制面板中选择预配置或自定义的指标控制面板，然后将其作为新控制面板导出到 CloudWatch。您可以在 CloudWatch 控制台中查看这些导出的控制面板。

**将 Performance Insights 指标控制面板作为新控制面板导出到 CloudWatch**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 向下滚动并选择**指标**。

   默认情况下，会显示包含 Performance Insights 指标的预配置控制面板。

1. 选择预配置或自定义控制面板，然后选择**导出到 CloudWatch**。

   随后会显示**导出到 CloudWatch** 窗口。  
![\[包含“导出到 CloudWatch”按钮的 Performance Insights 控制面板\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI-ExprtToCW.png)

1. 选择**导出为新控制面板**。  
![\[选中“导出为新控制面板”选项的“导出到 CloudWatch”窗口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI-ExprtToCW-NewDashboard.png)

1. 在**控制板名称**字段中输入新控制面板的名称，然后选择**确认**。

   控制面板导出成功后，横幅会显示一条消息。  
![\[显示成功消息的横幅\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI-ExprtToCW-SuccessBanner.png)

1. 选择横幅中的链接或**在 CloudWatch 中查看**，即可在 CloudWatch 控制台中查看指标控制面板。

# 向现有的 CloudWatch 控制面板添加 Performance Insights 指标
<a name="PI_metrics_export_CW.existing_dashboard"></a>

向现有的 CloudWatch 控制面板添加预配置或自定义指标控制面板。您可以向指标控制面板添加标签，使其单独显示在 CloudWatch 控制面板的某个部分中。

**将指标导出到现有的 CloudWatch 控制面板**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择 **Performance Insights**。

1. 选择一个数据库实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 向下滚动并选择**指标**。

   默认情况下，会显示包含 Performance Insights 指标的预配置控制面板。

1. 选择预配置或自定义控制面板，然后选择**导出到 CloudWatch**。

   随后会显示**导出到 CloudWatch** 窗口。

1. 选择**添加到现有控制面板**。  
![\[选中“添加到现有控制面板”选项的“导出到 CloudWatch”窗口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Pi-ExprtToCW-AddToExistingBoard.png)

1. 指定控制面板目标和标签，然后选择**确认**。
   + **CloudWatch 控制面板目标** - 选择现有的 CloudWatch 控制面板。
   + **CloudWatch 控制面板部分标签 - 可选** - 输入要在 CloudWatch 控制面板的此部分中显示的 Performance Insights 指标的名称。

   控制面板导出成功后，横幅会显示一条消息。

1. 选择横幅中的链接或**在 CloudWatch 中查看**，即可在 CloudWatch 控制台中查看指标控制面板。

# 在 CloudWatch 中查看 Performance Insights 指标小组件
<a name="PI_metrics_export_CW.individual_widget"></a>

在 Amazon RDS Performance Insights 控制面板中选择一个 Performance Insights 指标小组件，然后在 CloudWatch 控制台中查看指标数据。

**导出指标小组件并在 CloudWatch 控制台中查看指标数据**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择 **Performance Insights**。

1. 选择一个数据库实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 向下滚动到**指标**。

   默认情况下，会显示包含 Performance Insights 指标的预配置控制面板。

1. 选择一个指标小组件，然后在菜单中选择**在 CloudWatch 中查看**。  
![\[包含“在 CloudWatch 中查看”菜单的选定小组件\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI-ExprtToCW-SelectedMetric.png)

   指标数据显示在 CloudWatch 控制台中。

# 创建 CloudWatch 警报以监控 Amazon RDS
<a name="creating_alarms"></a>

您可以创建在警报改变状态时发送 Amazon SNS 消息的 CloudWatch 警报。警报会监控您指定的时间段内的某个指标。此外，警报会根据指标值在多个时间段内对比给定阈值的情况执行一项或多项操作。操作是向 Amazon SNS 主题或 Amazon EC2 Auto Scaling 策略发送的通知。

警报只会调用操作进行持续的状态变更。CloudWatch 警报不会仅仅因为处于特定状态而调用操作。该状态必须改变并在指定数量的时间段内一直保持。

您可以使用 CloudWatch 控制台中的 **DB\$1PERF\$1INSIGHTS** 指标数学函数来查询 Amazon RDS 以获取性能详情计数器指标。**DB\$1PERF\$1INSIGHTS** 函数还包括以亚分钟为间隔的 DBLoad 指标。您可以根据这些指标设置 CloudWatch 警报。

有关如何创建警报的更多详细信息，请参阅[针对 AWS 数据库中的性能详情计数器指标创建警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_alarm_database_performance_insights.html)。

**使用 AWS CLI 设置警报**
+ 调用 [https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html)。有关更多信息，请参阅 *[AWS CLI Command Reference](https://docs.aws.amazon.com/cli/latest/reference/)*。

**使用 CloudWatch API 设置警报**
+ 调用 [https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html)。有关更多信息，请参阅 *[Amazon CloudWatch API 参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/)*。

有关设置 Amazon SNS 主题和创建告警的更多信息，请参阅[使用 Amazon CloudWatch 告警](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

# 教程：为 Amazon RDS 的多可用区数据库集群副本滞后创建 Amazon CloudWatch 警报
<a name="multi-az-db-cluster-cloudwatch-alarm"></a>

您可以创建 Amazon CloudWatch 告警，使其在多可用区数据库集群的副本滞后超过阈值时发送 Amazon SNS 消息。告警会在您指定的时间范围内监控 `ReplicaLag` 指标。操作是向 Amazon SNS 主题或 Amazon EC2 Auto Scaling 策略发送的通知。

**为多可用区数据库集群副本滞后设置 CloudWatch 告警**

1. 登录 AWS 管理控制台 并打开 CloudWatch 控制台，网址为 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，依次选择 **Alarms**（警报）和 **All alarms**（所有警报）。

1. 选择**Create alarm（创建警报）**。

1. 在 **Specify metric and conditions (指定指标和条件)** 页面上，选择 **Select metric (选择指标)**。

1. 在搜索框中，输入多可用区数据库集群的名称，然后按 Enter。

   下图显示 **Select metric**（选择指标）页面，其中输入了名为 `rds-cluster` 的多可用区数据库集群。  
![\[Select metric（选择指标）页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-select-metric.png)

1. 依次选择 **RDS**、**Per-Database Metrics**（每个数据库的指标）。

1. 在搜索框中，输入 **ReplicaLag** 并按 Enter，然后选择数据库集群中的每个数据库实例。

   下图显示 **Select metric**（选择指标）页面，及为 **ReplicaLag** 指标选择的数据库实例。  
![\[Select metric（选择指标）页面及为 ReplicaLag 指标选择的数据库实例\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-metric-replica-lag.png)

   此告警考虑多可用区数据库集群中所有三个数据库实例的副本滞后。任何数据库实例超过阈值时，该告警都会响应。它使用一个数学表达式，返回三个指标的最大值。首先按指标名称排序，然后选择所有三个 **RepliaLag** 指标。

1. 从 **Add math**（添加数学表达式）中，依次选择 **All functions**（所有函数）、**MAX**。  
![\[Add math（添加数学表达式）设置\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-select-metric-math.png)

1. 选择 **Graphed metrics**（绘制的指标）选项卡，然后将 **Expression1**（表达式 1）的详细信息编辑为 **MAX([m1,m2,m3])**。

1. 对于所有三个 **ReplicaLag** 指标，将 **Period**（周期）更改为 **1 minute**（1 分钟）。

1. 清除所有指标的选择， **Expression1**（表达式 1）除外。

   **Select metric**（选择指标）页面应类似于以下图像。  
![\[Select metric（选择指标）页面，指标已选择\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-select-metric-expression1.png)

1. 选择**选择指标**。

1. 在 **Specify metric and conditions**（指定指标和条件）页面中，将标签更改为有意义的名称（例如 **ClusterReplicaLag**），然后在 **Define the threshold value**（定义阈值）中输入秒数。对于本教程，请输入 **1200** 秒（20 分钟）。您可以根据工作负载要求调整该值。

   **Specify metric and conditions**（指定指标和条件）页面应类似于以下图像。  
![\[Specify metric and conditions（指定指标和条件）页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-specify-metric-conditions.png)

1. 选择 **Next**（下一步），随即显示 **Configure actions**（配置操作）页面。

1. 保持选中 **In alarm**（处于告警中），选择 **Create new topic**（创建新主题），然后输入主题名称和有效的电子邮件地址。  
![\[Configure actions（配置操作）页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-configure-actions.png)

1. 选择 **Create topic**（创建主题），然后选择 **Next**（下一步）。

1. 在 **Add name and description**（添加名称和说明）页面中，输入 **Alarm name**（告警名称）和 **Alarm description**（告警说明），然后选择 **Next**（下一步）。  
![\[Add name and description（添加名称和说明）页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-add-name-and-description.png)

1. 预览您将在 **Preview and create**（预览和创建）页面上创建的告警，然后选择 **Create alarm**（创建告警）。

# 使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库
<a name="USER_DatabaseInsights"></a>

使用数据库洞察监控 Amazon RDS 数据库实例的实例集的数据库负载（DB Load）。数据库负载可衡量数据库中会话活动的级别。您可以使用数据库洞察来大规模分析 Amazon RDS 数据库的性能并排查其故障。

借助数据库洞察，您可以直观呈现数据库实例集中的数据库负载，并按等待状态、SQL 语句、主机或用户来筛选负载。

默认情况下，RDS 为您的 Amazon RDS 数据库启用数据库洞察的标准模式。

有关在 Amazon CloudWatch 控制台中使用数据库洞察的信息，请参阅《Amazon CloudWatch 用户指南》**中的 [CloudWatch 数据库洞察](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Database-Insights.html)。

## 定价
<a name="USER_Database-Insights-pricing"></a>

有关定价的信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

**Topics**
+ [定价](#USER_Database-Insights-pricing)
+ [支持数据库洞察的 Amazon RDS 数据库引擎、区域和实例类](USER_DatabaseInsights.Engines.md)
+ [开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)
+ [开启适用于 Amazon RDS 的数据库洞察的标准模式](USER_DatabaseInsights.TurningOnStandard.md)
+ [使用适用于 Amazon RDS 的数据库洞察配置您的数据库以监控慢速 SQL 查询](USER_DatabaseInsights.SlowSQL.md)
+ [适用于 Amazon RDS 的数据库洞察的注意事项](USER_DatabaseInsights.Considerations.md)

# 支持数据库洞察的 Amazon RDS 数据库引擎、区域和实例类
<a name="USER_DatabaseInsights.Engines"></a>

下表提供支持数据库洞察的 Amazon RDS 数据库引擎。


|  Amazon RDS 数据库引擎  | 支持的引擎版本和区域 | 实例类限制 | 
| --- | --- | --- | 
|  Amazon RDS for MariaDB  |  有关适用于 RDS for MariaDB 的数据库洞察的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  以下实例类不支持数据库洞察： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.Engines.html)  | 
|  RDS for MySQL  |  有关适用于 RDS for MySQL 的数据库洞察的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  以下实例类不支持数据库洞察： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.Engines.html)  | 
|  Amazon RDS for Microsoft SQL Server  |  有关适用于 RDS for SQL Server 的数据库洞察的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  不适用  | 
|  Amazon RDS for PostgreSQL  |  有关适用于 RDS for PostgreSQL 的数据库洞察的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  不适用  | 
|  Amazon RDS for Oracle  |  有关适用于 RDS for Oracle 的数据库洞察的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  不适用  | 

## 支持数据库洞察功能的 Amazon RDS 数据库引擎、区域和实例类
<a name="database-insights-feature-support"></a>

下表提供支持数据库洞察功能的 Amazon RDS 数据库引擎。


| 功能 | [定价套餐](https://aws.amazon.com/rds/performance-insights/pricing/) |  [支持的区域](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html#Concepts.RegionsAndAvailabilityZones.Regions)  |  [支持的数据库引擎](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html#Welcome.Concepts.DBInstance)  |  [支持的实例类](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html#Concepts.DBInstanceClass.Types)  | 
| --- | --- | --- | --- | --- | 
| [Performance Insights 的 SQL 统计数据](sql-statistics.md) | 全部 | 全部 |  全部  | 全部 | 
| [使用 Amazon RDS 的性能详情控制面板分析 Oracle 执行计划](USER_PerfInsights.UsingDashboard.AccessPlans.md) | 全部 | 全部 |  RDS for Oracle  | 全部 | 
| [分析一段时间内的数据库性能](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md) | 仅限付费套餐 |  全部  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.Engines.html)  |  全部  | 
|  [查看性能详情主动建议](USER_PerfInsights.InsightsRecommendationViewDetails.md) | 仅限付费套餐 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.Engines.html)  |  全部  | 全部  | 

## 支持数据库洞察的 Amazon RDS 区域
<a name="database-insights-region-support"></a>

Amazon RDS 在以下 AWS 区域中支持数据库洞察。
+ 美国东部（弗吉尼亚州北部）
+ 美国东部（俄亥俄州）
+ 美国西部（北加利福尼亚）
+ 美国西部（俄勒冈州）
+ 非洲（开普敦）
+ 亚太地区（香港）
+ 亚太地区（海得拉巴）
+ 亚太地区（雅加达）
+ 亚太地区（马来西亚）
+ 亚太地区（墨尔本）
+ 亚太地区（孟买）
+ 亚太地区（大阪）
+ 亚太地区（首尔）
+ 亚太地区（新加坡）
+ 亚太地区（悉尼）
+ 亚太地区（东京）
+ 加拿大（中部）
+ 加拿大西部（卡尔加里）
+ 欧洲地区（法兰克福）
+ 欧洲地区（爱尔兰）
+ 欧洲地区（伦敦）
+ 欧洲地区（米兰）
+ 欧洲地区（巴黎）
+ 欧洲（西班牙）
+ 欧洲地区（斯德哥尔摩）
+ 欧洲（苏黎世）
+ 以色列（特拉维夫）
+ 中东（巴林）
+ 中东（阿联酋）
+ 南美洲（圣保罗）
+ AWS GovCloud（美国东部）
+ AWS GovCloud（美国西部）

# 开启适用于 Amazon RDS 的数据库洞察的高级模式
<a name="USER_DatabaseInsights.TurningOnAdvanced"></a>

要开启适用于 Amazon RDS 的数据库洞察的高级模式，请使用以下过程。

## 在创建数据库实例或多可用区数据库集群时开启数据库洞察的高级模式
<a name="USER_DatabaseInsights.TurnOnCreateDatabase"></a>

在为 Amazon RDS 创建数据库时，开启数据库洞察的高级模式。

------
#### [ Console ]

在控制台中，您可以在创建数据库实例或多可用区数据库集群时开启数据库洞察的高级模式。

**在使用控制台创建数据库实例或多可用区数据库集群时，开启数据库洞察的高级模式**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 选择**数据库**。

1. 选择**创建数据库**。

1. 在**数据库洞察**部分，选择**高级模式**。然后，选择以下选项：
   + **保留** – 保留性能详情数据的时间。对于数据库洞察的高级模式，保留期必须为 15 个月。
   + **AWS KMS key** - 指定您的 KMS 密钥。性能详情使用您的 KMS 密钥来加密所有潜在的敏感数据。正在传输的数据和静态数据都会被加密。有关更多信息，请参阅 [加密 Amazon RDS 资源](Overview.Encryption.md)。

1. 选择**创建数据库**。

------
#### [ AWS CLI ]

要在创建数据库实例或多可用区数据库集群时开启数据库洞察的高级模式，请调用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 或 [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) AWS CLI 命令并提供以下值：
+ `--database-insights-mode advanced`，开启数据库洞察的高级模式。
+ `--engine`：数据库实例的数据库引擎。
+ `--db-instance-identifier`：数据库实例的标识符或 `--db-cluster-identifier`：多可用区数据库集群的标识符。
+ `--enable-performance-insights`，开启数据库洞察的性能详情。
+ `--performance-insights-retention-period`：数据库实例或多可用区数据库集群的数据的保留期。要开启数据库洞察，保留期必须至少为 465 天。

以下示例在创建数据库实例时启用数据库洞察的高级模式。

对于 Linux、macOS 或 Unix：

```
aws rds create-db-instance \
    --database-insights-mode advanced \ 
    --engine postgresql \
    --db-instance-identifier sample-db-identifier \
    --enable-performance-insights \
    --performance-insights-retention-period 465
```

对于 Windows：

```
aws rds create-db-instance ^
    --database-insights-mode advanced ^ 
    --engine postgresql ^
    --db-instance-identifier sample-db-identifier ^
    --enable-performance-insights ^
    --performance-insights-retention-period 465
```

------
#### [ RDS API ]

要在创建数据库实例或多可用区数据库集群时开启数据库洞察的高级模式，请为 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 或 [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) Amazon RDS API 操作指定以下参数。
+ `DatabaseInsightsMode`到 `advanced`。
+ `EnablePerformanceInsights`到 `True`。
+ `PerformanceInsightsRetentionPeriod` 至少为 465 天

------

## 在修改数据库实例或多可用区数据库集群时开启数据库洞察的高级模式
<a name="USER_DatabaseInsights.TurnOnModifyDatabase"></a>

在为 Amazon RDS 修改数据库时，开启数据库洞察。修改数据库实例来启用数据库洞察的高级模式不会导致停机。

**注意**  
要启用数据库洞察，多可用区数据库集群中的每个数据库实例都必须具有相同的性能详情和增强型监控设置。

------
#### [ Console ]

在控制台中，您可以在修改数据库实例或多可用区数据库集群时开启数据库洞察的高级模式。

**在使用控制台修改数据库实例或多可用区数据库集群时，开启数据库洞察的高级模式**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 选择**数据库**。

1. 选择数据库实例或多可用区数据库集群，然后选择**修改**。

1. 在**数据库洞察**部分，选择**高级模式**。然后，选择以下选项：
   + **保留** – 保留性能详情数据的时间。对于数据库洞察的高级模式，保留期必须为 15 个月。
   + **AWS KMS key** - 指定您的 KMS 密钥。性能详情使用您的 KMS 密钥来加密所有潜在的敏感数据。正在传输的数据和静态数据都会被加密。有关更多信息，请参阅“[加密 Amazon RDS 资源](Overview.Encryption.md)”。

1. 选择**继续**。

1. 对于**修改计划**，选择**立即应用**。如果您选择**在下一个计划维护时段内应用**，则您的数据库将忽略此设置，并立即开启数据库洞察的高级模式。

1. 选择**修改实例**。

------
#### [ AWS CLI ]

要在修改数据库实例或多可用区数据库集群时开启数据库洞察的高级模式，请调用 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 或 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI 命令并提供以下值：
+ `--database-insights-mode advanced`，开启数据库洞察的高级模式。
+ `--db-instance-identifier`：数据库实例的标识符或 `--db-cluster-identifier`：多可用区数据库集群的标识符。
+ `--enable-performance-insights`，开启数据库洞察的性能详情。
+ `--performance-insights-retention-period`：数据库实例的数据的保留期。要开启数据库洞察的高级模式，保留期必须至少为 465 天。

以下示例在修改数据库实例时启用数据库洞察的高级模式。

对于 Linux、macOS 或 Unix：

```
aws rds modify-db-instance \
    --database-insights-mode advanced \
    --db-instance-identifier sample-db-identifier \
    --enable-performance-insights \
    --performance-insights-retention-period 465
```

对于 Windows：

```
aws rds modify-db-instance ^
    --database-insights-mode advanced ^
    --db-instance-identifier sample-db-identifier ^
    --enable-performance-insights ^
    --performance-insights-retention-period 465
```

------
#### [ RDS API ]

要在修改数据库实例或多可用区数据库集群时开启数据库洞察的高级模式，请为您的 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 或 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) Amazon RDS API 操作指定以下参数。
+ `DatabaseInsightsMode`到 `advanced`。
+ `EnablePerformanceInsights`到 `True`。
+ `PerformanceInsightsRetentionPeriod` 至少为 465 天

------

# 开启适用于 Amazon RDS 的数据库洞察的标准模式
<a name="USER_DatabaseInsights.TurningOnStandard"></a>

要开启适用于 Amazon RDS 的数据库洞察的标准模式，请使用以下过程。

## 在创建数据库实例或多可用区数据库集群时开启数据库洞察的标准模式
<a name="USER_DatabaseInsights.TurnOnCreateDatabaseStandard"></a>

在为 Amazon RDS 创建数据库时，开启数据库洞察的标准模式。

------
#### [ Console ]

在控制台中，您可以在创建数据库实例或多可用区数据库集群时开启数据库洞察的标准模式。

**在使用控制台创建数据库实例或多可用区数据库集群时，开启数据库洞察的标准模式**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 选择**数据库**。

1. 选择**创建数据库**。

1. 在**数据库洞察**部分，选择**标准模式**。然后，从以下选项中进行选择，打开或关闭性能详情：
   + 要关闭性能详情，请取消选择**启用性能详情**。
   + 要开启性能详情，请选择**启用性能详情**。要配置性能详情，请指定以下选项：
     + **保留** – 保留性能详情数据的时间。保留期必须至少为 7 天。
     + **AWS KMS key** - 指定您的 KMS 密钥。性能详情使用您的 KMS 密钥来加密所有潜在的敏感数据。正在传输的数据和静态数据都会被加密。有关更多信息，请参阅 [加密 Amazon RDS 资源](Overview.Encryption.md)。

1. 选择**创建数据库**。

------
#### [ AWS CLI ]

要在创建数据库实例或多可用区数据库集群时开启数据库洞察的标准模式，请调用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 或 [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) AWS CLI 命令并提供以下值：
+ `--database-insights-mode standard`，开启数据库洞察的标准模式。
+ `--engine`：数据库实例的数据库引擎。
+ `--db-instance-identifier`：数据库实例的标识符或 `--db-cluster-identifier`：多可用区数据库集群的标识符。
+ `--enable-performance-insights` 或 `--no-enable-performance-insights`，打开和关闭性能详情。如果指定 `--enable-performance-insights`，则还必须指定 `--performance-insights-retention-period`，即数据库实例的数据的保留期。保留期必须至少为 7 天。

以下示例在创建数据库实例时启用数据库洞察的标准模式和性能详情。

对于 Linux、macOS 或 Unix：

```
aws rds create-db-instance \
    --database-insights-mode standard \ 
    --engine postgresql \
    --db-instance-identifier sample-db-identifier \
    --enable-performance-insights \
    --performance-insights-retention-period 7
```

对于 Windows：

```
aws rds create-db-instance ^
    --database-insights-mode standard ^ 
    --engine postgresql ^
    --db-instance-identifier sample-db-identifier ^
    --enable-performance-insights ^
    --performance-insights-retention-period 7
```

以下示例在创建数据库实例时启用数据库洞察的标准模式，但禁用性能详情。

对于 Linux、macOS 或 Unix：

```
aws rds create-db-instance \
    --database-insights-mode standard \ 
    --engine postgresql \
    --db-instance-identifier sample-db-identifier \
    --no-enable-performance-insights
```

对于 Windows：

```
aws rds create-db-instance ^
    --database-insights-mode standard ^ 
    --engine postgresql ^
    --db-instance-identifier sample-db-identifier ^
    --no-enable-performance-insights
```

------
#### [ RDS API ]

要在创建数据库实例或多可用区数据库集群时开启数据库洞察的标准模式，请为您的 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 或 [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) Amazon RDS API 操作指定以下参数。
+ `DatabaseInsightsMode`到 `standard`。
+ 将 `EnablePerformanceInsights` 设置为 `True` 或 `False`。如果将 `EnablePerformanceInsights` 设置为 `True`，则必须将 `PerformanceInsightsRetentionPeriod` 设置为至少 7 天。

------

## 在修改数据库实例或多可用区数据库集群时，开启数据库洞察的标准模式
<a name="USER_DatabaseInsights.TurnOnModifyDatabaseStandard"></a>

在为 Amazon RDS 修改数据库时，开启数据库洞察的标准模式。修改数据库实例来启用数据库洞察的标准模式不会导致停机。

**注意**  
要启用数据库洞察，多可用区数据库集群中的每个数据库实例都必须具有相同的性能详情和增强型监控设置。

------
#### [ Console ]

在控制台中，您可以在修改数据库实例或多可用区数据库集群时开启数据库洞察的标准模式。

**在使用控制台修改数据库实例或多可用区数据库集群时，开启数据库洞察的标准模式**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 选择**数据库**。

1. 选择数据库实例或多可用区数据库集群，然后选择**修改**。

1. 在**数据库洞察**部分，选择**标准模式**。然后从以下选项中进行选择：
   + 要关闭性能详情，请取消选择**启用性能详情**。
   + 要开启性能详情，请选择**启用性能详情**。要配置性能详情，请指定以下选项：
     + **保留** – 保留性能详情数据的时间。保留期必须至少为 7 天。
     + **AWS KMS key** - 指定您的 KMS 密钥。性能详情使用您的 KMS 密钥来加密所有潜在的敏感数据。正在传输的数据和静态数据都会被加密。有关更多信息，请参阅“[加密 Amazon RDS 资源](Overview.Encryption.md)”。

1. 选择**继续**。

1. 对于**修改计划**，选择**立即应用**。如果您选择**在下一个计划维护时段内应用**，则您的数据库将忽略此设置，并立即开启数据库洞察的标准模式。

1. 选择**修改实例**。

------
#### [ AWS CLI ]

要在修改数据库实例或多可用区数据库集群时开启数据库洞察的标准模式，请调用 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 或 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI 命令并提供以下值：
+ `--database-insights-mode standard`，开启数据库洞察的标准模式。
+ `--db-instance-identifier`：数据库实例的标识符或 `--db-cluster-identifier`：多可用区数据库集群的标识符。
+ `--enable-performance-insights` 或 `--no-enable-performance-insights`，打开和关闭性能详情。如果指定 `--enable-performance-insights`，则还必须指定 `--performance-insights-retention-period`，即数据库实例或多可用区数据库集群的数据的保留期。保留期必须至少为 7 天。

以下示例在修改数据库实例时启用数据库洞察的标准模式并启用性能详情。

对于 Linux、macOS 或 Unix：

```
aws rds modify-db-instance \
    --database-insights-mode standard \
    --db-instance-identifier sample-db-identifier \
    --enable-performance-insights \
    --performance-insights-retention-period 7
```

对于 Windows：

```
aws rds modify-db-instance ^
    --database-insights-mode standard ^
    --db-instance-identifier sample-db-identifier ^
    --enable-performance-insights ^
    --performance-insights-retention-period 7
```

以下示例在修改数据库实例时启用数据库洞察的标准模式并禁用性能详情。

对于 Linux、macOS 或 Unix：

```
aws rds modify-db-instance \
    --database-insights-mode standard \
    --db-instance-identifier sample-db-identifier \
    --no-enable-performance-insights
```

对于 Windows：

```
aws rds modify-db-instance ^
    --database-insights-mode standard ^
    --db-instance-identifier sample-db-identifier ^
    --no-enable-performance-insights
```

------
#### [ RDS API ]

要在修改数据库实例或多可用区数据库集群时开启数据库洞察的标准模式，请为您的 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 或 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) Amazon RDS API 操作指定以下参数。
+ `DatabaseInsightsMode`到 `standard`。
+ 将 `EnablePerformanceInsights` 设置为 `True` 或 `False`。如果将 `EnablePerformanceInsights` 设置为 `True`，则必须将 `PerformanceInsightsRetentionPeriod` 设置为至少 7 天。

------

# 使用适用于 Amazon RDS 的数据库洞察配置您的数据库以监控慢速 SQL 查询
<a name="USER_DatabaseInsights.SlowSQL"></a>

要监控数据库的慢速 SQL 查询，可以使用“数据库洞察”控制面板中的**慢速 SQL 查询**部分。在配置数据库以监控慢速 SQL 查询之前，**慢速 SQL 查询**部分为空。

有关在“数据库洞察”控制面板中监控慢速 SQL 查询的更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[查看数据库实例控制面板以获取 CloudWatch 数据库洞察](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Database-Insights-Database-Instance-Dashboard.html)。

要使用数据库洞察配置您的数据库以监控慢速 SQL 查询，请完成以下步骤：

1. 启用到 CloudWatch Logs 的日志导出。

1. 创建或修改数据库实例的数据库参数组。

有关配置日志导出的信息，请参阅《Amazon RDS 用户指南》**中的[将数据库日志发布到 Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch)。

要创建或修改数据库参数组，请参阅以下主题。
+ [在 Amazon RDS 中创建数据库参数组](USER_WorkingWithParamGroups.Creating.md)
+ [在 Amazon RDS 中修改数据库参数组中的参数](USER_WorkingWithParamGroups.Modifying.md)

------
#### [ RDS for MariaDB ]

要将 RDS for MariaDB 数据库实例配置为监控慢速 SQL 查询，请设置以下参数。
+ `log_slow_query` – 设置为 `1`
+ `log_slow_query_time` – 设置为 `1.0`
+ `log_output` – 设置为 `FILE`

------
#### [ RDS for MySQL ]

要将 RDS for MySQL 数据库实例配置为监控慢速 SQL 查询，请设置以下参数。
+ `slow_query_log` – 设置为 `1`
+ `long_query_time` – 设置为 `1.0`
+ `log_output` – 设置为 `FILE`

------
#### [ RDS for PostgreSQL ]

要将 RDS for PostgreSQL 数据库实例配置为监控慢速 SQL 查询，请设置以下参数。请注意，设置这些参数可能会降低数据库实例的性能。
+ `log_min_duration_statement` – 设置为 `1000`
+ `log_statement` – 设置为 `none`
+ `log_destination` – 设置为 `stderr`

------

**注意**  
对于 RDS for MySQL，可以将参数 `long_query_time` 配置为 1 微秒的粒度。例如，您可以将此参数设置为 `0.000001`。根据数据库实例上的查询量，参数 `long_query_time` 的值可能会降低性能。从值 `1.0` 开始，然后根据工作负载进行调整。当您将此参数设置为 `0` 时，数据库洞察会记录所有查询。

有关 RDS for MariaDB、RDS for MySQL 和 RDS for PostgreSQL 日志的信息，请参阅以下内容。
+ [MariaDB 数据库日志文件](USER_LogAccess.Concepts.MariaDB.md)
+ [MySQL 数据库日志文件](USER_LogAccess.Concepts.MySQL.md)
+ [RDS for PostgreSQL 数据库日志文件](USER_LogAccess.Concepts.PostgreSQL.md)

# 适用于 Amazon RDS 的数据库洞察的注意事项
<a name="USER_DatabaseInsights.Considerations"></a>

以下是适用于 Amazon RDS 的数据库洞察的注意事项。
+ 您无法管理多可用区数据库集群中数据库实例的数据库洞察。
+ 要启用数据库洞察的高级模式，您必须启用性能详情并将性能详情的保留期设置为至少 465 天（15 个月）。除了数据库洞察的成本外，将性能详情的保留期设置为 15 个月没有额外成本。有关数据库洞察的定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。
+ 要启用数据库洞察，多可用区数据库集群中的每个数据库实例都必须具有相同的性能详情和增强型监控设置。
+ 修改数据库实例来启用数据库洞察的任一模式都不会导致停机。

# 在 Amazon RDS 上使用性能详情监控数据库负载
<a name="USER_PerfInsights"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

Performance Insights 在现有 Amazon RDS 监控功能的基础上进行了扩展，以便展示并帮助您分析数据库性能。利用 Performance Insights 控制面板，您可以可视化 Amazon RDS 数据库实例负载上的数据库负载，并按等待状态、SQL 语句、主机或用户来筛选负载。有关将 Performance Insights 与 Amazon DocumentDB 结合使用的信息，请参阅 *[Amazon DocumentDB 开发人员指南](https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html)*。

**Topics**
+ [Amazon RDS 上的 Performance Insights 概述](USER_PerfInsights.Overview.md)
+ [为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)
+ [Amazon RDS for MariaDB 或 Amazon RDS for MySQL 上性能详情的性能架构概述](USER_PerfInsights.EnableMySQL.md)
+ [为 Performance Insights 配置访问策略](USER_PerfInsights.access-control.md)
+ [使用 Performance Insights 控制面板分析指标](USER_PerfInsights.UsingDashboard.md)
+ [查看性能详情主动建议](USER_PerfInsights.InsightsRecommendationViewDetails.md)
+ [使用 Performance Insights API for Amazon RDS 检索指标](USER_PerfInsights.API.md)
+ [使用 AWS CloudTrail 记录 Performance Insights 调用](USER_PerfInsights.CloudTrail.md)
+ [性能详情 API 和接口 VPC 端点（AWS PrivateLink）](pi-vpc-interface-endpoints.md)

# Amazon RDS 上的 Performance Insights 概述
<a name="USER_PerfInsights.Overview"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

默认情况下，RDS 在控制台创建向导中为所有 Amazon RDS 引擎启用 Performance Insights。如果一个数据库实例中有多个数据库，则 Performance Insights 会聚合性能数据。

可在以下视频中大致了解 Amazon RDS 的 Performance Insights。

[![AWS Videos](http://img.youtube.com/vi/yOeWcPBT458/0.jpg)](http://www.youtube.com/watch?v=yOeWcPBT458)


**重要**  
以下主题说明如何将 Amazon RDS Performance Insights 与非 Aurora 数据库引擎结合使用。有关将 Amazon RDS Performance Insights 与 Amazon Aurora 结合使用的信息，请参阅《Amazon Aurora 用户指南》**中的[使用 Amazon RDS Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html)。

**Topics**
+ [数据库负载](USER_PerfInsights.Overview.ActiveSessions.md)
+ [最大 CPU](USER_PerfInsights.Overview.MaxCPU.md)
+ [支持性能详情的 Amazon RDS 数据库引擎、区域和实例类](USER_PerfInsights.Overview.Engines.md)
+ [性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)

# 数据库负载
<a name="USER_PerfInsights.Overview.ActiveSessions"></a>

*数据库负载（DB 负载）*衡量数据库中的会话活动级别。`DBLoad` 是 Performance Insights 中的关键指标，Performance Insights 每秒都会收集数据库负载。

**Topics**
+ [活动的会话](#USER_PerfInsights.Overview.ActiveSessions.active-sessions)
+ [平均活动会话数](#USER_PerfInsights.Overview.ActiveSessions.AAS)
+ [平均活动执行数](#USER_PerfInsights.Overview.ActiveSessions.AAE)
+ [尺寸](#USER_PerfInsights.Overview.ActiveSessions.dimensions)

## 活动的会话
<a name="USER_PerfInsights.Overview.ActiveSessions.active-sessions"></a>

*数据库会话*表示的是应用程序与关系数据库的对话。活动的会话 是已将作业提交到数据库引擎并且正在等待响应的连接。

当会话在 CPU 上运行或等待资源变为可用以便继续执行时，该会话即处于活动状态。例如，活动的会话可能会等待页面（或块）读入内存中，然后占用 CPU 以从页面读取数据。

## 平均活动会话数
<a name="USER_PerfInsights.Overview.ActiveSessions.AAS"></a>

*平均活动会话数（AAS）*是 Performance Insights 中 `DBLoad` 指标的单位。它衡量数据库上有多少个会话同时处于活动状态。

Performance Insights 每秒都会对并行运行查询的会话数进行采样。对于每个活动的会话，Performance Insights 都会收集以下数据：
+ SQL 语句
+ 会话状态（正在 CPU 上运行或正在等待）
+ Host
+ 运行 SQL 的用户

Performance Insights 通过以下方式计算 AAS：对于特定时间段内，将会话总数除以样本数。例如，下表显示了正在运行的查询的 5 个连续样本，其间隔为 1 秒。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)

在前面的示例中，该时间间隔的数据库负载为 2 AAS。这一测量结果表明，在采集 5 个样本的时间间隔内，在任何给定时间，平均有 2 个会话处于活动状态。

## 平均活动执行数
<a name="USER_PerfInsights.Overview.ActiveSessions.AAE"></a>

每秒的平均活动执行数 (AAE) 与平均活动会话数相关。为了计算平均活动执行数，Performance Insights 使用查询的总执行时间除以时间间隔。下表显示了上表中同一查询的平均活动执行数计算。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)

在大多数情况下，查询的平均活动会话数和平均活动执行数大致相同。但是，由于计算所用的数据是不同的数据源，因此计算通常略有不同。

## 尺寸
<a name="USER_PerfInsights.Overview.ActiveSessions.dimensions"></a>

`db.load` 指标不同于其他时间序列指标，因为您可以将它分为称为维度的子组件。您可以将维度视为 `DBLoad` 指标的不同特征的“切片依据”类别。

诊断性能问题时，以下维度通常最有用：

**Topics**
+ [等待事件](#USER_PerfInsights.Overview.ActiveSessions.waits)
+ [主要 SQL](#USER_PerfInsights.Overview.ActiveSessions.top-sql)
+ [计划](#USER_PerfInsights.Overview.ActiveSessions.plans)

有关 Amazon RDS 引擎维度的完整列表，请参阅 [按维度切片的数据库负载](USER_PerfInsights.UsingDashboard.Components.md#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.dims)。

### 等待事件
<a name="USER_PerfInsights.Overview.ActiveSessions.waits"></a>

*等待事件* 会导致 SQL 语句等待特定事件发生，然后才能继续运行。等待事件是数据库负载的一个重要维度（或称类别），因为它们指示了工作受阻的位置。

每个活动的会话要么会在 CPU 上运行，要么仍在等待。例如，在搜索内存寻找缓冲区、执行计算或运行过程代码时，会话都会占用 CPU。当会话不占用 CPU 时，它们可能正在等待内存缓冲区变为空闲、等待要读取的数据文件或等待将要写入的日志。会话等待资源的时间越长，它在 CPU 上运行的时间就越少。

当您优化数据库时，经常尝试找出会话正在等待的资源。例如，两三个等待事件可能会占据数据库负载的 90％。这一测量结果表明，平均而言，活动会话花费了大部分时间用于等待少量资源。如果您能找出导致这些等待的原因，就可以尝试提出解决方案了。

等待事件因数据库引擎而异：
+ 有关所有 MariaDB 和 MySQL 等待事件的信息，请参阅 MySQL 文档中的[等待事件摘要表](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-wait-summary-tables.html)。
+ 有关所有 PostgreSQL 等待事件的信息，请参阅 PostgreSQL 文档中的[统计数据收集器 > 等待事件表](https://www.postgresql.org/docs/current/monitoring-stats.html#WAIT-EVENT-TABLE)。
+ 有关所有 Oracle 等待事件的信息，请参阅 Oracle 文档中的[等待事件说明](https://docs.oracle.com/database/121/REFRN/GUID-2FDDFAA4-24D0-4B80-A157-A907AF5C68E2.htm#REFRN-GUID-2FDDFAA4-24D0-4B80-A157-A907AF5C68E2)。
+ 有关所有 SQL Server 等待事件的信息，请参阅 SQL Server 文档中的[等待类型](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-wait-stats-transact-sql?view=sql-server-2017#WaitTypes)。

**注意**  
对于 Oracle，后台进程有时在没有关联的 SQL 语句的情况下工作。在这些情况下，Performance Insights 报告以冒号连接的后台进程类型以及与该后台进程关联的等待类。后台进程类型包括 `LGWR`、`ARC0`、`PMON` 等。  
例如，在存档程序执行 I/O 时，它的 Performance Insights 报告类似于 `ARC1:System I/O`。有时，还会缺少后台进程类型，而 Performance Insights 仅报告等待类，例如 `:System I/O`。

### 主要 SQL
<a name="USER_PerfInsights.Overview.ActiveSessions.top-sql"></a>

等待事件显示运行中的瓶颈，而主要 SQL 则显示哪些查询对数据库负载的影响最大。例如，当前可能正在数据库上运行着许多查询，但某一个查询可能会占用 99% 的数据库负载。在这种情况下，高负载可能表示查询存在问题。

默认情况下，Performance Insights 控制台会显示导致数据库负载的主要 SQL 查询。控制台还显示每个语句的相关统计信息。要诊断特定语句的性能问题，可以检查其执行计划。

### 计划
<a name="USER_PerfInsights.Overview.ActiveSessions.plans"></a>

*执行计划*，也简称为*计划*，是访问数据的一系列步骤。例如，连接表 `t1` 和 `t2` 的计划可能会循环访问 `t1` 中的所有行，并将每一行与 `t2` 中的行进行比较。在关系数据库中，*优化程序*是确定 SQL 查询最有效计划的内置代码。

对于数据库实例，Performance Insights 会自动收集执行计划。要诊断 SQL 性能问题，请检查为高资源 SQL 查询捕获的计划。这些计划会显示数据库如何解析和运行查询。

要了解如何使用计划分析数据库负载，请参阅：
+ Oracle：[使用 Amazon RDS 的性能详情控制面板分析 Oracle 执行计划](USER_PerfInsights.UsingDashboard.AccessPlans.md)
+ SQL Server：[使用 Amazon RDS 的性能详情控制面板分析 SQL Server 执行计划](USER_PerfInsights.UsingDashboard.AccessPlansSqlServer.md)

#### 计划捕获
<a name="USER_PerfInsights.Overview.ActiveSessions.plans.capture"></a>

Performance Insights 每五分钟就会识别资源密集度最高的查询并捕获其计划。因此，无需手动收集和管理大量计划。相反，您可以使用 **Top SQL**（主要 SQL）选项卡重点关注问题最严重的查询计划。

**注意**  
Performance Insights 不会捕获文本超过最大可收集查询文本限制的查询计划。有关更多信息，请参阅 [在 Performance Insights 控制面板中访问更多 SQL 文本](USER_PerfInsights.UsingDashboard.SQLTextSize.md)。

执行计划的保留期与 Performance Insights 数据的保留期相同。免费套餐中的保留设置为 **Default (7 days)** [原定设置（7 天）]。要将性能数据保留更长时间，请指定 1–24 个月。有关保留期的更多信息，请参阅[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)。

#### 摘要查询
<a name="USER_PerfInsights.Overview.ActiveSessions.plans.digest"></a>

**Top SQL**（主要 SQL）选项卡默认显示摘要查询。摘要查询本身没有计划，但所有使用文本值的查询都有计划。例如，摘要查询可能包括文本 `WHERE `email`=?`。摘要可能包含两个查询，一个带有文本 `WHERE email=user1@example.com`，另一个带有 `WHERE email=user2@example.com`。每个文本查询都可能包括多个计划。

如果选择摘要查询，控制台将显示所选摘要的子语句的所有计划。因此，无需浏览所有子语句即可查看计划。计划可能不会显示在前 10 个子语句的列表中。控制台会显示已收集计划的所有子查询计划，无论查询是否在前 10 列表中。

# 最大 CPU
<a name="USER_PerfInsights.Overview.MaxCPU"></a>

在控制面板中，**数据库负载**图表会收集、聚合和显示会话信息。要查看活动会话是否超过最大 CPU，请查看它们与**最大 vCPU** 线的关系。Performance Insights 根据数据库实例的 vCPU（虚拟 CPU）内核数，来决定**最大 vCPU** 值。

一次只能在 vCPU 上运行一个进程。如果进程数超过 vCPU 的数量，则进程开始排队。当排队增加时，数据库性能就会降低。如果数据库负载经常高于**最大 vCPU** 线并且主要等待状态为 CPU，则表示 CPU 过载。在这种情况下，您可能需要限制与实例的连接数，优化具有高 CPU 负载的任何 SQL 查询，或考虑使用更大的实例类。如果始终有大量实例处于任何等待状态，则表示可能存在要解决的瓶颈或资源争用问题。即使数据库负载未越过**最大 vCPU** 线，也可能会出现此问题。

# 支持性能详情的 Amazon RDS 数据库引擎、区域和实例类
<a name="USER_PerfInsights.Overview.Engines"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

下表提供支持性能详情的 Amazon RDS 数据库引擎。

**注意**  
有关 Amazon Aurora，请参阅《Amazon Aurora 用户指南》**中的[支持性能详情的 Amazon Aurora 数据库引擎](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.Overview.Engines.html)


|  Amazon RDS 数据库引擎  | 支持的引擎版本和区域 | 实例类限制 | 
| --- | --- | --- | 
|  Amazon RDS for MariaDB  |  有关适用于 RDS for MariaDB 的性能详情的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  以下实例类别不支持性能详情： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html)  | 
|  RDS for MySQL  |  有关适用于 RDS for MySQL 的性能详情的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  以下实例类别不支持性能详情： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html)  | 
|  Amazon RDS for Microsoft SQL Server  |  有关适用于 RDS for SQL Server 的性能详情的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  不适用  | 
|  Amazon RDS for PostgreSQL  |  有关适用于 RDS for PostgreSQL 的性能详情的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  不适用  | 
|  Amazon RDS for Oracle  |  有关适用于 RDS for Oracle 的性能详情的版本和区域可用性的更多信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。  |  不适用  | 

## 支持性能详情功能的 Amazon RDS 数据库引擎、区域和实例类
<a name="USER_PerfInsights.Overview.PIfeatureEngnRegSupport"></a>

下表提供支持性能详情功能的 Amazon RDS 数据库引擎。


| 功能 | [定价套餐](https://aws.amazon.com/rds/performance-insights/pricing/) |  [支持的区域](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html#Concepts.RegionsAndAvailabilityZones.Regions)  |  [支持的数据库引擎](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html#Welcome.Concepts.DBInstance)  |  [支持的实例类](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html#Concepts.DBInstanceClass.Types)  | 
| --- | --- | --- | --- | --- | 
| [Performance Insights 的 SQL 统计数据](sql-statistics.md) | 全部 | 全部 |  全部  | 全部 | 
| [使用 Amazon RDS 的性能详情控制面板分析 Oracle 执行计划](USER_PerfInsights.UsingDashboard.AccessPlans.md) | 全部 | 全部 |  RDS for Oracle  | 全部 | 
| [分析一段时间内的数据库性能](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md) | 仅限付费套餐 |  全部  |  RDS for PostgreSQL  |  全部  | 
|  [查看性能详情主动建议](USER_PerfInsights.InsightsRecommendationViewDetails.md) | 仅限付费套餐 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html)  |  全部  | 全部  | 

# 性能详情的定价和数据留存
<a name="USER_PerfInsights.Overview.cost"></a>

原定设置情况下，性能详情提供免费套餐，其中包括 7 天的性能数据历史记录和每月 100 万个 API 请求。您也可以购买更长的保留期。有关完整的定价信息，请参阅[性能详情定价](https://aws.amazon.com/rds/performance-insights/pricing/)。

在 RDS 控制台中，您可以为性能详情数据选择以下任何保留期：
+ **原定设置（7 天）**
+ ***n* 个月**，其中 ***n*** 是 1–24 之间的数字

![\[为您的性能详情数据选择保留期。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-retention-periods.png)


要了解如何使用 AWS CLI 设置保留期，请参阅。

# 为 Amazon RDS 打开和关闭性能详情
<a name="USER_PerfInsights.Enabling"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

您可以在创建数据库实例或多可用区数据库集群时，为其打开性能详情。如果需要，可以稍后通过控制台修改数据库实例来关闭性能详情。打开和关闭性能详情不会导致停机、重启或失效转移。

**注意**  
Performance Schema 是 Amazon RDS for MariaDB or MySQL 使用的一个可选性能工具。如果打开或关闭 Performance Schema，则需要重新启动。但是，如果您打开或关闭性能详情，则无需重新启动。有关更多信息，请参阅 [Amazon RDS for MariaDB 或 Amazon RDS for MySQL 上性能详情的性能架构概述](USER_PerfInsights.EnableMySQL.md)。

性能详情代理占用数据库主机上有限的 CPU 和内存。当数据库负载较高时，代理将通过降低收集数据的频率来限制性能影响。

------
#### [ Console ]

在控制台中，您可以在创建或修改数据库实例或多可用区数据库集群时打开或关闭性能详情。

**创建数据库实例或多可用区数据库集群时打开或关闭性能详情**

创建新的数据库实例或多可用区数据库集群后，Amazon RDS 默认情况下会启用性能详情。要关闭性能详情，请选择**数据库洞察 - 标准**选项，然后取消选择**启用性能详情**选项。

有关更多信息，请参阅以下主题。
+ 要创建数据库实例，请按照[创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)中用于您的数据库引擎的说明操作。
+ 要创建多可用区数据库集群，请按 [创建 Amazon RDS 的多可用区数据库集群](create-multi-az-db-cluster.md) 中数据库引擎的说明操作。

以下屏幕截图显示了**性能详情**部分。

![\[在使用控制台创建数据库实例或多可用区数据库集群期间打开性能详情\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_enabling.png)


如果您选择**启用性能详情**，您有以下选项：
+ **保留期**（仅适用于数据库洞察的标准模式）：保留性能详情数据的时间量。保留期设置为**默认值（7 天）**。要将性能数据保留更长时间，请指定 1–24 个月。有关保留期的更多信息，请参阅。[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)
+ **AWS KMS key** - 指定您的 AWS KMS key。性能详情使用您的 KMS 密钥来加密所有潜在的敏感数据。正在传输的数据和静态数据都会被加密。有关更多信息，请参阅 [更改性能详情的 AWS KMS 策略](USER_PerfInsights.access-control.cmk-policy.md)。

**在修改数据库实例或多可用区数据库集群时打开或关闭性能详情**

在控制台中，您可以修改数据库实例或多可用区数据库集群来管理性能详情。

**使用控制台为数据库实例或多可用区数据库集群管理性能详情**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 选择**数据库**。

1. 选择数据库实例或多可用区数据库集群，然后选择**修改**。

1. 要开启性能详情，请选择**启用性能详情**。要关闭性能详情，请选择**数据库洞察 - 标准**选项，然后取消选择**启用性能详情**选项。

   如果您选择**启用性能详情**，您有以下选项：
   + **保留期**（仅适用于数据库洞察的标准模式）：保留性能详情数据的时间量。保留期设置为**默认值（7 天）**。要将性能数据保留更长时间，请指定 1–24 个月。有关保留期的更多信息，请参阅。[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)
   + **AWS KMS key** - 指定您的 KMS 密钥。性能详情使用您的 KMS 密钥来加密所有潜在的敏感数据。正在传输的数据和静态数据都会被加密。有关更多信息，请参阅 [加密 Amazon RDS 资源](Overview.Encryption.md)。

1. 选择**继续**。

1. 对于**修改计划**，请选择“立即应用”。如果您选择“Apply during the next scheduled maintenance window”（在下一个计划的维护时段内应用），则您的实例将忽略此设置并立即打开性能详情。

1. 选择**修改实例**。

------
#### [ AWS CLI ]

使用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI 命令时，通过指定 `--enable-performance-insights` 可开启性能详情，并将 `--database-insights-mode` 设置为 `advanced` 或 `standard`。要关闭性能详情，请指定 `--no-enable-performance-insights` 并将 `database-insights-mode` 设置为 `standard`。

您还可以使用以下 AWS CLI 命令指定这些值：
+  [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 
+  [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 
+  [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) 
+  [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 
+  [restore-db-instance-from-s3](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html) 

在 CLI 中打开性能详情时，可以选择通过 `--performance-insights-retention-period` 选项指定保留性能详情数据的天数。您可以指定 `7`、*month* \$1 31（其中 *month* 为 1–23 之间的数字）或 `731`。例如，如果您想将性能数据保留 3 个月，请指定 `93`，也就是 3 \$1 31。默认值为 `7` 天。有关保留期的更多信息，请参阅。[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)

以下示例为 `sample-db-cluster` 开启性能详情并指定将性能详情数据保留 93 天（3 个月）。

对于 Linux、macOS 或 Unix：

```
aws rds modify-db-cluster \
	--database-insights-mode standard \
    --db-cluster-identifier sample-db-instance \
    --enable-performance-insights \
    --performance-insights-retention-period 93
```

对于：Windows

```
aws rds modify-db-cluster ^
	--database-insights-mode standard ^
    --db-cluster-identifier sample-db-instance ^
    --enable-performance-insights ^
    --performance-insights-retention-period 93
```

如果您指定保留期（如 94 天），这不是一个有效值，则 RDS 会发出错误。

```
An error occurred (InvalidParameterValue) when calling the CreateDBInstance operation: 
Invalid Performance Insights retention period. Valid values are: [7, 31, 62, 93, 124, 155, 186, 217, 
248, 279, 310, 341, 372, 403, 434, 465, 496, 527, 558, 589, 620, 651, 682, 713, 731]
```

**注意**  
对于未在集群级别管理性能详情的数据库集群中的实例，只能切换性能详情。

------
#### [ RDS API ]

在使用 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 操作 Amazon RDS API 操作创建新数据库实例时，通过将 `EnablePerformanceInsights` 设置为 `True` 来打开性能详情。要关闭性能详情，请将 `EnablePerformanceInsights` 设置为 `False` 并将 `DatabaseInsightsMode` 设置为 `standard`。

您还可以使用以下 API 操作指定 `EnablePerformanceInsights` 值：
+  [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)（多可用区数据库集群） 
+  [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)（多可用区数据库集群） 
+  [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 
+  [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) 
+  [RestoreDBInstanceFromS3](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html) 

在打开性能详情时，可以通过 `PerformanceInsightsRetentionPeriod` 参数指定性能详情数据的保留时间，以天为单位。您可以指定 `7`、*month* \$1 31（其中 *month* 为 1–23 之间的数字）或 `731`。例如，如果您想将性能数据保留 3 个月，请指定 `93`，也就是 3 \$1 31。默认值为 `7` 天。有关保留期的更多信息，请参阅。[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)

------

# Amazon RDS for MariaDB 或 Amazon RDS for MySQL 上性能详情的性能架构概述
<a name="USER_PerfInsights.EnableMySQL"></a>

Performance Schema 是一项可选功能，用来监控 Amazon RDS for MariaDB 或 Amazon RDS for MySQL 低细节层次的运行时性能。性能架构旨在将对数据库性能的影响降至最低。Performance Insights 是一个单独的功能，无论有没有 Performance Schema，您都可以使用该功能。

**Topics**
+ [性能架构概览](#USER_PerfInsights.EnableMySQL.overview)
+ [性能详情和性能架构](#USER_PerfInsights.effect-of-pfs)
+ [让 Performance Insights 自动管理 Performance Schema](#USER_PerfInsights.EnableMySQL.options)
+ [重启对 Performance Schema 的影响](#USER_PerfInsights.EnableMySQL.reboot)
+ [确定性能详情是否正在管理 Performance Schema](USER_PerfInsights.EnableMySQL.determining-status.md)
+ [为 Amazon RDS for MariaDB 或 Amazon RDS for MySQL 开启 Performance Schema](USER_PerfInsights.EnableMySQL.RDS.md)

## 性能架构概览
<a name="USER_PerfInsights.EnableMySQL.overview"></a>

Performance Schema 监控 MariaDB 和 MySQL 数据库中的事件。*事件*是一项消耗时间的数据库服务器操作，已进行了分析，以便收集计时信息。以下为事件示例：
+ 函数调用
+ 等待操作系统
+ SQL 执行阶段
+ SQL 语句组

`PERFORMANCE_SCHEMA` 存储引擎是实施 Performance Schema 功能的一种机制。该引擎使用数据库源代码中的分析来收集事件数据。该引擎将事件存储在 `performance_schema` 数据库的 memory-only 表中。您可以查询 `performance_schema`，就像您可以查询任何其他表一样。有关更多信息，请参阅 *MySQL 参考手册*中的 [MySQL Performance Schema](https://dev.mysql.com/doc/refman/8.0/en/performance-schema.html)。

## 性能详情和性能架构
<a name="USER_PerfInsights.effect-of-pfs"></a>

Performance Insights 和 Performance Schema 是独立的功能，但它们相互关联。Amazon RDS for MariaDB 或 MySQL 的性能详情的行为取决于性能架构是否已开启，如果已开启，则取决于性能详情是否自动管理性能架构。下表描述了该行为。


| 性能架构已开启 | 性能详情管理模式 | 性能详情行为 | 
| --- | --- | --- | 
|  是  |  自动  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html)  | 
|  是  |  手动  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html)  | 
|  否  |  不适用  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_PerfInsights.EnableMySQL.html)  | 

## 让 Performance Insights 自动管理 Performance Schema
<a name="USER_PerfInsights.EnableMySQL.options"></a>

在打开 Performance Insights 的情况下创建 Amazon RDS for MariaDB 或 Amazon RDS for MySQL 数据库实例时，也会打开 Performance Schema。在这种情况下，性能详情会自动管理您的性能架构参数。这是建议的配置。

当 Performance Insights 自动管理 Performance Schema 时，`performance_schema` 的**来源**是 `System default`。

**注意**  
t4g.medium 实例类不支持自动管理性能架构。

如果手动更改 `performance_schema` 参数值，然后稍后想恢复为自动管理，请参阅[为 Amazon RDS for MariaDB 或 Amazon RDS for MySQL 开启 Performance Schema](USER_PerfInsights.EnableMySQL.RDS.md)。

**重要**  
当 Performance Insights 打开 Performance Schema 时，它不会更改参数组值。但是，正在运行的数据库实例上的值会更改。查看更改后的值的唯一方法是运行 `SHOW GLOBAL VARIABLES` 命令。

## 重启对 Performance Schema 的影响
<a name="USER_PerfInsights.EnableMySQL.reboot"></a>

Performance Insights 和 Performance Schema 对数据库实例重启的要求不同：

**Performance Schema**  
要打开或关闭此功能，您必须重启数据库实例。

**性能详情**  
要打开或关闭此功能，您不需要重启数据库实例。

如果当前未打开 Performance Schema，并且您在不重启数据库实例的情况下打开 Performance Insights，则不会打开 Performance Schema。

# 确定性能详情是否正在管理 Performance Schema
<a name="USER_PerfInsights.EnableMySQL.determining-status"></a>

要了解性能详情当前是否正在管理所有受支持引擎版本的 Performance Schema，请查看下表。


| performance\$1schema 参数设置 | “源”列设置 | 性能详情正在管理 Performance Schema？ | 
| --- | --- | --- | 
| 0 | System default | 是 | 
| 0 或者 1 | Modified | 否 | 

在以下过程中，您可以确定性能详情是否正在自动管理 Performance Schema。

**自动确定性能详情是否正在管理 Performance Schema**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 选择**参数组**。

1. 选择数据库实例的参数组名称。

1. 在搜索栏中输入 **performance\$1schema**。

1. 检查**源**是否为系统默认设置，以及**值**是否为 **0**。如果是这样，性能详情将自动管理 Performance Schema。

   在此处所示的示例中，性能详情未自动管理 Performance Schema。  
![\[显示修改了 performance_schema 参数的设置。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_schema_user.png)

# 为 Amazon RDS for MariaDB 或 Amazon RDS for MySQL 开启 Performance Schema
<a name="USER_PerfInsights.EnableMySQL.RDS"></a>

假设已为数据库实例或多可用区数据库集群打开性能详情，但当前未管理 Performance Schema。如果要让性能详情自动管理 Performance Schema，请完成以下步骤。

**配置 Performance Schema 以进行自动管理**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 选择**参数组**。

1. 选择数据库实例或多可用区数据库集群的参数组名称。

1. 选择**编辑**。

1. 在搜索栏中输入 **performance\$1schema**。

1. 选择 `performance_schema` 参数。

1. 选择**设置为默认值**。

1. 选择**将值设置为默认值**进行确认。

1. 选择**保存更改**。

1. 重启数据库实例或多可用区数据库集群。
**重要**  
无论何时打开或关闭 Performance Schema，都要确保重启数据库实例或多可用区数据库集群。

有关修改实例参数的更多信息，请参阅[在 Amazon RDS 中修改数据库参数组中的参数](USER_WorkingWithParamGroups.Modifying.md)。有关控制面板的更多信息，请参阅 [使用 Performance Insights 控制面板分析指标](USER_PerfInsights.UsingDashboard.md)。有关 MySQL Performance Schema 的更多信息，请参阅 MySQL 文档中的 [MySQL Performance Schema](https://dev.mysql.com/doc/refman/8.0/en/performance-schema.html)（适用于 8.0）和 [MySQL Performance Schema](https://dev.mysql.com/doc/refman/8.4/en/performance-schema.html)（适用于 8.4）。

# 为 Performance Insights 配置访问策略
<a name="USER_PerfInsights.access-control"></a>

要访问 Performance Insights，主体必须拥有 AWS Identity and Access Management (IAM) 的相应权限。

**注意**  
要将性能详情与客户管理的密钥一起使用，请向用户授予 AWS AWS KMS 密钥的 `kms:Decrypt` 和 `kms:GenerateDataKey` 权限。

使用以下方法访问性能详情：
+ [附加 `AmazonRDSPerformanceInsightsReadOnly` 托管策略以获取只读权限](USER_PerfInsights.access-control.managed-policy.md)
+ [附加 `AmazonRDSPerformanceInsightsFullAccess` 托管策略以获取对 Performance Insights API 的所有操作的访问权限](USER_PerfInsights.access-control.FullAccess-managed-policy.md)
+ [创建具有特定权限的自定义 IAM 策略](USER_PerfInsights.access-control.custom-policy.md)
+ [配置加密的性能详情数据的 AWS KMS 权限](USER_PerfInsights.access-control.cmk-policy.md)
+ [使用资源级权限设置精细访问权限](USER_PerfInsights.access-control.dimensionAccess-policy.md)
+ [使用基于标签的访问控制通过资源标签管理权限](USER_PerfInsights.access-control.tag-based-policy.md)

# 将 AmazonRDSPerformanceInsightsReadOnly 策略附加到 IAM 主体
<a name="USER_PerfInsights.access-control.managed-policy"></a>

`AmazonRDSPerformanceInsightsReadOnly` 是 AWS 托管策略，可以授予对 Amazon RDS Performance Insights API 的所有只读操作的访问权限。

如果将 `AmazonRDSPerformanceInsightsReadOnly` 附加到权限集或角色，还必须附加以下 CloudWatch 权限：
+ `GetMetricStatistics`
+ `ListMetrics`
+ `GetMetricData`

有了这些权限，接收方可以使用性能详情以及其他控制台功能。

 有关 CloudWatch 权限的更多信息，请参阅 [Amazon CloudWatch 权限参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html)。

有关 `AmazonRDSPerformanceInsightsReadOnly` 的更多信息，请参阅[AWS 托管式策略：AmazonRDSPerformanceInsightsReadOnly](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsReadOnly)。

# 将 AmazonRDSPerformanceInsightsFullAccess 策略附加到 IAM 主体
<a name="USER_PerfInsights.access-control.FullAccess-managed-policy"></a>

`AmazonRDSPerformanceInsightsFullAccess` 是 AWS 托管策略，可以授予对 Amazon RDS Performance Insights API 的所有操作的访问权限。

如果将 `AmazonRDSPerformanceInsightsFullAccess` 附加到权限集或角色，还必须附加以下 CloudWatch 权限：
+ `GetMetricStatistics`
+ `ListMetrics`
+ `GetMetricData`

有了这些权限，接收方可以使用性能详情以及其他控制台功能。

 有关 CloudWatch 权限的更多信息，请参阅 [Amazon CloudWatch 权限参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html)。

有关 `AmazonRDSPerformanceInsightsFullAccess` 的更多信息，请参阅[AWS 托管式策略：AmazonRDSPerformanceInsightsFullAccess](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsFullAccess)。

# 为 Performance Insights 创建自定义 IAM 策略
<a name="USER_PerfInsights.access-control.custom-policy"></a>

对于没有 `AmazonRDSPerformanceInsightsReadOnly` 或 `AmazonRDSPerformanceInsightsFullAccess` 策略的用户，可以通过创建或修改用户托管式 IAM 策略，来授予对 Performance Insights 的访问权限。在将策略附加到 IAM 权限集或角色时，接收人可以使用 Performance Insights。

**创建自定义策略**

1. 打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在**创建策略**页面上，选择 **JSON** 选项。

1. 复制并粘贴**《AWS 托管策略参考指南》中的 *JSON 策略文档*部分提供的有关 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsReadOnly.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsReadOnly.html) 或 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsFullAccess.html) 策略的文本。

1. 选择**查看策略**。

1. 为策略提供名称并可以选择提供描述，然后选择**创建策略**。

现在，可以将策略附加到权限集或角色。以下过程假设您已经有一个可用于此目的的用户。

**将策略附加到用户**

1. 打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择 **Users**。

1. 从列表中选择现有用户。
**重要**  
要使用 Performance Insights，请确保除了自定义策略之外，您还有权访问 Amazon RDS。例如，`AmazonRDSPerformanceInsightsReadOnly` 预定义策略提供了对 Amazon RDS 的只读访问权限。有关更多信息，请参阅“[使用策略管理访问](UsingWithRDS.IAM.md#security_iam_access-manage)”。

1. 在 **Summary (摘要)** 页上，选择 **Add permissions (添加权限)**。

1. 选择**直接附加现有策略**。对于**搜索**，键入策略名称的前几个字符，如下图所示。  
![\[选择一个策略\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_attach_iam_policy.png)

1. 选择策略，然后选择 **Next: Review**。

1. 选择 **Add permissions (添加权限)**。

# 更改性能详情的 AWS KMS 策略
<a name="USER_PerfInsights.access-control.cmk-policy"></a>

Performance Insights 使用 AWS KMS key 加密敏感数据。通过 API 或控制台启用 Performance Insights 时，您可以执行以下任一操作：
+ 选择默认 AWS 托管式密钥。

  Amazon RDS 为新的数据库实例使用 AWS 托管式密钥。Amazon RDS 将为您的 AWS 账户创建 AWS 托管式密钥。您的 AWS 账户在每个 AWS 区域都有用于 Amazon RDS 的不同 AWS 托管式密钥。
+ 选择客户托管密钥。

  如果您指定一个客户托管密钥，则您账户中调用 Performance Insights API 的用户需要在 KMS 密钥具有 `kms:Decrypt` 和 `kms:GenerateDataKey` 权限。您可以通过 IAM policy 配置这些权限。但是，我们建议您通过 KMS 密钥策略来管理这些权限。有关更多信息，请参阅《*AWS Key Management Service 开发人员指南*》中的[在 AWS KMS 中使用密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

**Example**  
以下示例显示了如何将语句添加到 KMS 密钥策略。这些语句可以访问 Performance Insights。您可能需要更改一些限制，这取决于您使用 KMS 密钥的方式。在将语句添加到您的策略之前，请删除所有注释。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id" : "your-policy",
    "Statement" : [ 
        {
            "Sid" : "AllowViewingRDSPerformanceInsights",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::444455556666:role/Role1"
                ]
                },
             "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
                ],
            "Resource": "*",
            "Condition" : {
            "StringEquals" : {
                "kms:ViaService" : "rds.us-east-1.amazonaws.com"
                },
            "ForAnyValue:StringEquals": {
                "kms:EncryptionContext:aws:pi:service": "rds",
                "kms:EncryptionContext:service": "pi",
                "kms:EncryptionContext:aws:rds:db-id": "db-AAAAABBBBBCCCCDDDDDEEEEE"
                }
            }
        }
    ]
}
```

## Performance Insights 如何使用 AWS KMS 客户托管密钥
<a name="USER_PerfInsights.access-control.PI-using-KMS-cmk-policy"></a>

Performance Insights 使用客户托管密钥加密敏感数据。当您开启 Performance Insights 时，可以通过 API 提供 AWS KMS 密钥。性能详情对此密钥创建 AWS KMS 权限。它使用密钥并执行必要的操作来处理敏感数据。敏感数据包括用户、数据库、应用程序和 SQL 查询文本等字段。Performance Insights 可确保数据在静态和动态时都保持加密状态。

## Performance Insights IAM 如何使用 AWS KMS
<a name="USER_PerfInsights.access-control.PI-work-with-kms"></a>

IAM 提供针对特定 API 的权限。Performance Insights 具有以下公有 API，您可以使用 IAM 策略对其进行限制：
+ `DescribeDimensionKeys`
+ `GetDimensionKeyDetails`
+ `GetResourceMetadata`
+ `GetResourceMetrics`
+ `ListAvailableResourceDimensions`
+ `ListAvailableResourceMetrics`

您可以使用以下 API 请求来获取敏感数据。
+ `DescribeDimensionKeys`
+ `GetDimensionKeyDetails`
+ `GetResourceMetrics`

当您使用 API 获取敏感数据时，Performance Insights 会利用调用方的凭证。此检查可确保敏感数据的访问权限仅限于有权访问 KMS 密钥的用户。

调用这些 API 时，您需要通过 IAM 策略调用 API 的权限，以及通过 AWS KMS 密钥策略调用 `kms:decrypt` 操作的权限。

`GetResourceMetrics` API 可以返回敏感和非敏感数据。请求参数决定响应是否应包含敏感数据。当请求的筛选条件或分组依据参数中包含敏感维度时，API 会返回敏感数据。

有关可以与 `GetResourceMetrics` API 一起使用的维度的更多信息，请参阅 [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)。

**Example 示例**  
以下示例请求 `db.user` 组的敏感数据：  

```
POST / HTTP/1.1
Host: <Hostname>
Accept-Encoding: identity
X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics
Content-Type: application/x-amz-json-1.1
User-Agent: <UserAgentString>
X-Amz-Date: <Date> 
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature>
Content-Length: <PayloadSizeBytes>
{
  "ServiceType": "RDS",
  "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W",
  "MetricQueries": [
    {
      "Metric": "db.load.avg",
      "GroupBy": {
        "Group": "db.user",
        "Limit": 2
      }
    }
  ],
  "StartTime": 1693872000,
  "EndTime": 1694044800,
  "PeriodInSeconds": 86400
}
```

**Example**  
以下示例请求 `db.load.avg` 指标的非敏感数据：  

```
POST / HTTP/1.1
Host: <Hostname>
Accept-Encoding: identity
X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics
Content-Type: application/x-amz-json-1.1
User-Agent: <UserAgentString>
X-Amz-Date: <Date> 
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature>
Content-Length: <PayloadSizeBytes>
{
    "ServiceType": "RDS",
    "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W",
    "MetricQueries": [
        {
            "Metric": "db.load.avg"
        }
    ],
    "StartTime": 1693872000,
    "EndTime": 1694044800,
    "PeriodInSeconds": 86400
}
```

# 授予 Performance Insights 精细访问权限
<a name="USER_PerfInsights.access-control.dimensionAccess-policy"></a>

精细访问控制功能提供用于控制对 Performance Insights 的访问的其他方法。此访问控制功能可以允许或拒绝对 `GetResourceMetrics`、`DescribeDimensionKeys` 和 `GetDimensionKeyDetails` Performance Insights 操作的各个维度的访问。要使用精细访问功能，请使用条件键在 IAM 策略中指定维度。访问权限的评估遵循 IAM 策略评估逻辑。有关更多信息，请参阅《IAM 用户指南》**中的[策略评估逻辑](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)。如果 IAM 策略声明未指定任何维度，该声明将控制对指定操作的所有维度的访问。有关可用维度的列表，请参阅 [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)。

要找出您的凭证有权访问的维度，请使用 `ListAvailableResourceDimensions` 中的 `AuthorizedActions` 参数并指定操作。允许的 `AuthorizedActions` 值如下所示：
+ `GetResourceMetrics`
+ `DescribeDimensionKeys`
+ `GetDimensionKeyDetails`

例如，如果您为 `AuthorizedActions` 参数指定 `GetResourceMetrics`，`ListAvailableResourceDimensions` 将返回 `GetResourceMetrics` 操作有权访问的维度列表。如果您在 `AuthorizedActions` 参数中指定了多个操作，`ListAvailableResourceDimensions` 将返回这些操作有权访问的维度的交集。

**Example**  
以下示例提供了对 `GetResourceMetrics` 和 `DescribeDimensionKeys` 操作的指定维度的访问权限。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowToDiscoverDimensions",
            "Effect": "Allow",
            "Action": [
                "pi:ListAvailableResourceDimensions"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ]
        },
        {
            "Sid": "SingleAllow",
            "Effect": "Allow",
            "Action": [
                "pi:GetResourceMetrics",
                "pi:DescribeDimensionKeys"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "pi:Dimensions": [
                        "db.sql_tokenized.id",
                        "db.sql_tokenized.statement"
                    ]
                }
            }
        }
        

    ]
}
```
以下是对所请求维度的响应：  

```
	// ListAvailableResourceDimensions API
// Request
{
    "ServiceType": "RDS",
    "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W",
    "Metrics": [ "db.load" ],
    "AuthorizedActions": ["DescribeDimensionKeys"]
}

// Response
{    
    "MetricDimensions": [ {
        "Metric": "db.load",
        "Groups": [
            {
                "Group": "db.sql_tokenized",
                "Dimensions": [
                    { "Identifier": "db.sql_tokenized.id" },
                  //  { "Identifier": "db.sql_tokenized.db_id" }, // not included because not allows in the IAM Policy
                    { "Identifier": "db.sql_tokenized.statement" }
                ] 
            }
            
        ] }
    ]
}
```
以下示例为维度指定一个允许访问和两个拒绝访问权限。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
          {
            "Sid": "AllowToDiscoverDimensions",
            "Effect": "Allow",
            "Action": [
                "pi:ListAvailableResourceDimensions"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ]
          },

          {
            "Sid": "O01AllowAllWithoutSpecifyingDimensions",
            "Effect": "Allow",
            "Action": [
                "pi:GetResourceMetrics",
                "pi:DescribeDimensionKeys"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ]
        },
        
        {
            "Sid": "O01DenyAppDimensionForAll",
            "Effect": "Deny",
            "Action": [
                "pi:GetResourceMetrics",
                "pi:DescribeDimensionKeys"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ],
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "pi:Dimensions": [
                        "db.application.name"
                    ]
                }
            }
        },
        
        {
            "Sid": "O01DenySQLForGetResourceMetrics",
            "Effect": "Deny",
            "Action": [
                "pi:GetResourceMetrics"
            ],
            "Resource": [
                "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W"
            ],
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "pi:Dimensions": [
                        "db.sql_tokenized.statement"
                    ]
                }
            }
        }
    ]
}
```
以下是对请求维度的响应：  

```
			// ListAvailableResourceDimensions API
// Request
{
    "ServiceType": "RDS",
    "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W",
    "Metrics": [ "db.load" ],
    "AuthorizedActions": ["GetResourceMetrics"]
}

// Response
{    
    "MetricDimensions": [ {
        "Metric": "db.load",
        "Groups": [
            {
                "Group": "db.application",
                "Dimensions": [
                
                  // removed from response because denied by the IAM Policy
                  //  { "Identifier": "db.application.name" }  
                ]
            },
            {
                "Group": "db.sql_tokenized",
                "Dimensions": [
                    { "Identifier": "db.sql_tokenized.id" },
                    { "Identifier": "db.sql_tokenized.db_id" },
                    
                  // removed from response because denied by the IAM Policy
                  //  { "Identifier": "db.sql_tokenized.statement" }
                ] 
            },
            ...
        ] }
    ]
}
```

```
// ListAvailableResourceDimensions API
// Request
{
    "ServiceType": "RDS",
    "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W",
    "Metrics": [ "db.load" ],
    "AuthorizedActions": ["DescribeDimensionKeys"]
}

// Response
{    
    "MetricDimensions": [ {
        "Metric": "db.load",
        "Groups": [
            {
                "Group": "db.application",
                "Dimensions": [
                  // removed from response because denied by the IAM Policy
                  //  { "Identifier": "db.application.name" }  
                ]
            },
            {
                "Group": "db.sql_tokenized",
                "Dimensions": [
                    { "Identifier": "db.sql_tokenized.id" },
                    { "Identifier": "db.sql_tokenized.db_id" },
                    
                  // allowed for DescribeDimensionKeys because our IAM Policy 
                  // denies it only for GetResourceMetrics
                    { "Identifier": "db.sql_tokenized.statement" }
                ] 
            },
            ...
        ] }
    ]
}
```

# 对性能详情使用基于标签的访问控制
<a name="USER_PerfInsights.access-control.tag-based-policy"></a>

您可以使用继承自父数据库实例的标签来控制对性能详情指标的访问权限。要控制对性能详情操作的访问，请使用 IAM 策略。这些策略可以检查数据库实例上的标签以确定权限。

## 标签如何与性能详情配合使用
<a name="USER_PerfInsights.access-control.tag-inheritance"></a>

性能详情会自动应用您的数据库实例标签来授权性能详情指标。向数据库实例添加标签时，您可以立即使用这些标签来控制对性能详情数据的访问。
+ 要为性能详情指标添加或更新标签，请修改数据库实例上的标签。
+ 要查看性能详情指标的标签，请对性能详情指标资源调用 `ListTagsForResource`。它将从与该指标关联的数据库实例返回标签。

**注意**  
如果您尝试直接对性能详情指标使用 `TagResource` 和 `UntagResource` 操作，则会返回错误。

## 创建基于标签的 IAM 策略
<a name="USER_PerfInsights.access-control.tag-based-policies"></a>

要控制对性能详情操作的访问权限，请使用 IAM 策略中的 `aws:ResourceTag` 条件键。这些策略会检查您的数据库实例上的标签。

**Example**  
该策略禁止访问生产数据库的性能详情指标。该策略拒绝在性能详情中对任何带有 `env:prod` 标签的数据库资源执行 `pi:GetResourceMetrics` 操作。  

```
 {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "pi:GetResourceMetrics",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/env": "prod"
                }
            }
        }
    ]
}
```

# 使用 Performance Insights 控制面板分析指标
<a name="USER_PerfInsights.UsingDashboard"></a>

**重要**  
 AWS 已宣布性能详情功能的生命周期终止日期为：2026 年 6 月 30 日。在此日期之后，Amazon RDS 将不再支持性能详情控制台体验、灵活的保留期（1-24 个月）及其关联定价。性能详情 API 将继续存在，定价不变。性能详情 API 的费用将与 CloudWatch 数据库洞察的费用一起显示在您的 AWS 账单中。  
 建议您在 2026 年 6 月 30 日之前，将使用性能详情付费套餐的所有数据库实例升级到数据库洞察的高级模式。有关升级到数据库洞察的高级模式的信息，请参阅[开启适用于 Amazon RDS 的数据库洞察的高级模式](USER_DatabaseInsights.TurningOnAdvanced.md)。  
 如果您不采取任何行动，则使用性能详情的数据库实例将默认为使用数据库洞察的标准模式。在数据库洞察的标准模式下，您可能会在 7 天后无法访问性能数据历史记录，并且可能无法在 Amazon RDS 控制台中使用执行计划和按需分析功能。2026 年 6 月 30 日之后，只有数据库洞察的高级模式将支持执行计划和按需分析。  
 借助 CloudWatch 数据库洞察，您可以监控数据库实例集的数据库负载，并对性能进行大规模分析和故障排除。有关数据库洞察的更多信息，请参阅[使用 CloudWatch 数据库洞察监控 Amazon RDS 数据库](USER_DatabaseInsights.md)。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

Performance Insights 控制面板包含帮助您分析和排查性能问题的数据库性能信息。在主控制面板页面上，可以查看有关数据库负载的信息。您可以按维度（例如等待事件或 SQL）对数据库负载进行“切片”。

**Topics**
+ [性能详情控制面板概览](USER_PerfInsights.UsingDashboard.Components.md)
+ [访问性能详情控制面板](USER_PerfInsights.UsingDashboard.Opening.md)
+ [按等待事件分析数据库负载](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.md)
+ [分析一段时间内的数据库性能](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md)
+ [使用性能详情中的“主要 SQL”选项卡分析查询](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.md)
+ [分析 Oracle 最大 PDB 负载](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.TopPDB.md)
+ [使用 Amazon RDS 的性能详情控制面板分析执行计划](USER_PerfInsights.UsingDashboard.AnalyzingPlans.md)

# 性能详情控制面板概览
<a name="USER_PerfInsights.UsingDashboard.Components"></a>

与性能详情进行交互的最简单方式即为控制面板。以下示例显示了 PostgreSQL 数据库实例的控制面板。

![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_0b.png)


**Topics**
+ [时间范围筛选器](#USER_PerfInsights.UsingDashboard.Components.time-range)
+ [计数器指标图表](#USER_PerfInsights.UsingDashboard.Components.Countermetrics)
+ [数据库负载图表](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions)
+ [主要维度表](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable)

## 时间范围筛选器
<a name="USER_PerfInsights.UsingDashboard.Components.time-range"></a>

默认情况下，Performance Insights 控制面板将显示最近一小时的数据库负载。您可以将此范围调整为短至 5 分钟或长达 2 年。您也可以选择自定义相对范围。

![\[Performance Insights 相对时间\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-relative-time.png)


您可以选择一个具有开始和结束日期和时间的绝对范围。以下示例显示的时间范围从 2024 年 9 月 25 日午夜开始，到 2024 年 9 月 28 日晚上 11:59 结束。

![\[Performance Insights 绝对时间\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-absolute-time.png)


默认情况下，性能详情控制面板的时区为协调世界时（UTC）。也可以选择本地时区。

![\[为性能详情控制面板选择本地时区\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-local-time-zone.png)


## 计数器指标图表
<a name="USER_PerfInsights.UsingDashboard.Components.Countermetrics"></a>

使用计数器指标，您可以自定义 Performance Insights 控制面板来包括最多 10 个其他图表。这些图表显示了所选的数十个操作系统和数据库性能指标。您可将此信息与数据库负载相关联，以帮助识别和分析性能问题。

 **计数器指标**图表显示了性能计数器的数据。原定设置指标取决于数据库引擎：
+ MySQL 和 MariaDB – `db.SQL.Innodb_rows_read.avg`
+ Oracle – `db.User.user calls.avg`
+ Microsoft SQL Server – `db.Databases.Active Transactions(_Total).avg`
+ PostgreSQL – `db.Transactions.xact_commit.avg`

![\[计数器指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/oracle_perf_insights_counters.png)


要更改性能计数器，请选择 **Manage Metrics**（管理指标）。您可以选择多个**操作系统指标**或**数据库指标**，如以下屏幕截图所示。要查看任何指标的详细信息，请将鼠标悬停在相应指标名称上。

![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_select_metrics.png)


有关可以为每个数据库引擎添加的计数器指标的说明，请参阅 [性能详情计数器指标](USER_PerfInsights_Counters.md)。

## 数据库负载图表
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions"></a>

**数据库负载**图表显示数据库负载与**最大 vCPU** 线表示的数据库实例容量的比较情况。预设情况下，堆叠折线图将以每单位时间的平均活动会话数表示数据库负载。数据库负载按等待状态进行切片（分组）。

![\[数据库负载\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_2.png)


### 按维度切片的数据库负载
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.dims"></a>

您可以选择按任何受支持维度分组的活动会话显示负载。下表显示了不同引擎支持的维度。


| 维度 | Oracle | SQL Server | PostgreSQL | MySQL | 
| --- | --- | --- | --- | --- | 
|  主机  |  是  |  是  |  是  |  是  | 
|  SQL  |  是  |  是  |  是  |  是  | 
|  用户  |  是  |  是  |  是  |  是  | 
|  等待  |  是  |  是  |  是  |  是  | 
|  计划  |  是  |  否  |  否  |  否  | 
|  应用程序  |  否  |  否  |  是  |  否  | 
|  数据库  |  否  |  否  |  是  |  是  | 
|  会话类型  |  否  |  否  |  是  |  否  | 

下图显示了 PostgreSQL 数据库实例的维度。

![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_2b.png)


### 维度项目的数据库负载详细信息
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.item-details"></a>

要查看维度中数据库负载项目的详细信息，请将光标悬停在相应项目名称上。下图显示了 SQL 语句的详细信息。

![\[数据库负载项目详细信息\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_2c.png)


要在图例中查看任何项目在选定时间段内的详细信息，请将鼠标悬停在相应项目上。

![\[数据库负载的时间段详细信息\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_3.png)


## 主要维度表
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable"></a>

主要维度表将按不同的维度切割数据库负载。维度是数据库负载不同特征的类别或“切片依据”。如果维度为 SQL，则 **Top SQL**（主要 SQL）显示了对数据库负载影响最大的 SQL 语句。

![\[前 N 个维度\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_4c.png)


请选择以下任何一个维度选项卡。


| 选项卡 | 说明 | 支持的引擎 | 
| --- | --- | --- | 
|  主要 SQL  |  当前正在运行的 SQL 语句  |  全部  | 
|  主要等待  |  数据库后端正在等待的事件  |  全部  | 
|  主要主机  |  所连接客户端的主机名  |  全部  | 
|  主要用户  |  登录到数据库的用户  |  全部  | 
|  主要数据库  |  客户端所连接的数据库的名称  |  仅限 PostgreSQL、MySQL、MariaDB 和 SQL Server  | 
|  主要应用程序  |  连接到数据库的应用程序的名称  |  仅限 PostgreSQL 和 SQL Server  | 
|  主要会话类型  |  当前会话的类型  | 仅限 PostgreSQL | 

要了解如何使用 **Top SQL**（主要 SQL）选项卡分析查询，请参阅 [“Top SQL”（主要 SQL）选项卡概览](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.md#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL)。

# 访问性能详情控制面板
<a name="USER_PerfInsights.UsingDashboard.Opening"></a>

Amazon RDS 在性能详情控制面板中提供性能详情和 CloudWatch 指标的合并视图。

要访问性能详情控制面板，请使用以下过程。

**在 AWS 管理控制台中查看性能详情控制面板**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

   对于已开启性能详情的数据库实例，还可以通过选择数据库实例列表中的**会话**项目来访问控制面板。在**当前活动**下，**会话**项目显示在过去五分钟内平均活跃会话中的数据库负载。条形图显示负载量。当条形图为空时，数据库实例处于空闲状态。随着负载的增加，条形图会以蓝色填充。当负载超过数据库实例类上的虚拟 CPU (vCPU) 数量时，条形图变为红色，表示可能出现瓶颈。  
![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_0a.png)

1. （可选）在右上角选择日期或时间范围，并指定不同的相对或绝对时间间隔。现在，您可以指定时间段，并生成数据库性能分析报告。该报告提供了已发现的见解和建议。有关更多信息，请参阅 [在性能详情中创建性能分析报告](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md)。  
![\[按时间间隔筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_0c.png)

   在以下屏幕截图中，数据库负载间隔为 5 小时。  
![\[将时间间隔设置为 5 小时\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_1.png)

1. （可选）要放大数据库负载图表的一部分，请选择开始时间并拖动到所需时间段的结尾。

   所选区域将在数据库负载图表中突出显示。  
![\[指定时间间隔内的数据库负载\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_zoom_in.png)

   释放鼠标时，数据库负载图表上的所选 AWS将放大，并重新计算 **Top *dimensions***（热门维度）表。  
![\[放大选定的数据库负载\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_zoom_in_b.png)

1. （可选）要自动刷新数据，请选择**自动刷新**。  
![\[设置自动刷新\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_1b.png)

   性能详情控制面板自动用新数据进行刷新。刷新速率取决于所显示的数据量：
   + 5 分钟则每 10 秒刷新一次。
   + 1 小时则每 5 分钟刷新一次。
   + 5 小时则每 5 分钟刷新一次。
   + 24 小时则每 30 分钟刷新一次。
   + 1 周则每天刷新一次。
   + 1 个月则每天刷新一次。

# 按等待事件分析数据库负载
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad"></a>

如果**数据库负载**图表显示了一个瓶颈，您可以找出负载的来源。为此，请查看**数据库负载**图表下方的主要负载项目。选择特定项目 (如 SQL 查询或用户) 以深入了解该项目并查看有关该项目的详细信息。

按等待状态和主要 SQL 查询分组的数据库负载是默认 Performance Insights 控制面板视图，此组合通常提供了最多的性能问题见解。按等待状态分组的数据库负载显示了数据库中是否存在任何资源瓶颈或并发瓶颈。在这种情况下，“Top Load Items”表的 **SQL** 选项卡显示了增大该负载的查询。

诊断性能问题的典型工作流程如下：

1. 查看**数据库负载**图表并了解是否存在数据库负载的事件越过了 **Max CPU** 线。

1. 如果有，请查看**数据库负载**图表并确定负主要责任的等待状态。

1. 通过以下方式确定导致负载的摘要查询：查看“Top Load Items”表上的 **SQL** 选项卡中的哪个查询对于导致这些等待状态所起的作用最大。可通过 **DB Load by Wait (按等待状态排列的数据库负载)** 列加以识别。

1. 在 **SQL** 选项卡中选择这些摘要查询之一以展开它并查看它包含的子查询。

例如，在下面的控制面板中，**日志文件同步**等待状态占大部分数据库负载。**LGWR 所有工作线程组**等待状态也很高。**主要 SQL** 图表显示导致**日志文件同步**等待状态的内容：频繁的 `COMMIT` 语句。在这种情况下，降低提交频率将会减少数据库负载。

![\[日志文件同步错误\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_7.png)


# 分析一段时间内的数据库性能
<a name="USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod"></a>

通过创建一段时间的性能分析报告，可以通过按需分析来分析数据库性能。可以查看性能分析报告，发现任何性能问题，例如资源瓶颈或数据库实例中的查询更改。Performance Insights 控制面板支持您选择时间段并创建性能分析报告。您还可以向报告添加一个或多个标签。

要使用此功能，您必须使用付费套餐保留期。有关更多信息，请参阅 [性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)

该报告可供在**性能分析报告 - 新增**选项卡中进行选择和查看。该报告包含见解、相关指标和解决性能问题的建议。在 Performance Insights 保留期内，该报告可供查看。

如果报告分析时段的开始时间在保留期之外，则报告将被删除。您也可以在保留期结束之前删除报告。

要检测性能问题并为数据库实例生成分析报告，必须开启 Performance Insights。有关开启 Performance Insights 的更多信息，请参阅[为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)。

有关此功能的区域、数据库引擎和实例类支持信息，请参阅[支持性能详情功能的 Amazon RDS 数据库引擎、区域和实例类](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport)

在以下各节中，您可以创建、查看、删除性能分析报告和向其中添加标签。

**Topics**
+ [在性能详情中创建性能分析报告](USER_PerfInsights.UsingDashboard.CreatingPerfAnlysisReport.md)
+ [在性能详情中查看性能分析报告](USER_PerfInsights.UsingDashboard.ViewPerfAnalysisReport.md)
+ [在性能详情中向性能分析报告添加标签](USER_PerfInsights.UsingDashboard.ManagePerfAnalysisReportTags.md)
+ [在性能详情中删除性能分析报告](USER_PerfInsights.UsingDashboard.DeletePerfAnalysisReport.md)

# 在性能详情中创建性能分析报告
<a name="USER_PerfInsights.UsingDashboard.CreatingPerfAnlysisReport"></a>

您可以在 Performance Insights 控制面板中创建特定时段的性能分析报告。您可以选择一个时间段并将一个或多个标签添加到分析报告中。

分析时段从 5 分钟到 6 天不等。在分析开始之前，必须有至少 24 小时的性能数据。

有关此功能的区域、数据库引擎和实例类支持信息，请参阅[支持性能详情功能的 Amazon RDS 数据库引擎、区域和实例类](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport)

**创建一段时间内的性能分析报告**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

1. 在性能详情控制面板上的**数据库负载**部分中选择**分析性能**。

   将显示用于设置时间段和向性能分析报告中添加一个或多个标签的字段。  
![\[显示用于创建分析报告的字段的 Performance Insights 控制面板\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_CreateAnalysisReport.png)

1. 选择时间段。如果在右上角的**相对范围**或**绝对范围**中设置时间段，您只能输入或选择该时间段内的分析报告日期和时间。如果您选择该时间段之外的分析时段，则会显示一条错误消息。

    要设置时间段，您可以执行以下任一操作：
   + 按下并拖动数据库负载图表上的任何滑块。

     **性能分析时段**框显示选定的时间段，数据库负载图表突出显示选定的时间段。
   + 在**性能分析期**框中，选择**开始日期**、**开始时间**、**结束日期**以及**结束时间**。  
![\[已选择分析时段的 Performance Insights 控制面板\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_CreateAnalysisRep_TimePeriod.png)

1. （可选）输入**键**和**值 - *可选***，以便为报告添加标签。  
![\[包含用于添加新标签的字段的 Performance Insights 控制面板\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_CreateAnalysisRep_AddTag.png)

1. 选择**分析性能**。

   无论报告生成是成功还是失败，横幅都会显示一条消息。该消息还提供了查看报告的链接。

   以下示例显示了带有报告创建成功消息的横幅。  
![\[分析报告成功创建消息横幅\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_CreateAnaysisRep_SuccessMsg.png)

   该报告可供在**性能分析报告 - 新增**选项卡中查看。

您可以使用 AWS CLI 创建性能分析报告。有关如何使用 AWS CLI 创建报告的示例，请参阅[创建一段时间的性能分析报告](USER_PerfInsights.API.Examples.md#USER_PerfInsights.API.Examples.CreatePerfAnalysisReport)。

# 在性能详情中查看性能分析报告
<a name="USER_PerfInsights.UsingDashboard.ViewPerfAnalysisReport"></a>

**性能分析报告 - 新增**选项卡列出了为数据库实例创建的所有报告。对于每个报告，显示以下内容：
+ **ID**：报告的唯一标识符。
+ **名称**：添加到报告中的标签键。
+ **报告创建时间**：您创建报告的时间。
+ **分析开始时间**：报告中分析的开始时间。
+ **分析结束时间**：报告中分析的结束时间。

**查看性能分析报告**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择要查看其分析报告的数据库实例。

1. 在性能详情控制面板中，向下滚动并选择**性能分析报告 - 新增**选项卡。

   将显示不同时间段的所有分析报告。

1. 选择您要查看的报告的 **ID**。

   如果确定了多个见解，则原定设置情况下，数据库负载图表会显示整个分析时段。如果报告确定了一个见解，则原定设置情况下，数据库负载图表会显示该见解。

   控制面板还在**标签**部分中列出了报告的标签。

   以下示例显示了报告的整个分析时段。  
![\[显示整个分析报告时段的数据库负载图表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_EntireAnalysisRep.png)

1. 如果在报告中发现多个见解，请在**数据库负载见解**列表中选择要查看的见解。

   控制面板显示见解消息、数据库负载图表（突出显示见解的时间段、分析和建议）以及报告标签列表。

   以下示例显示了报告中的数据库负载见解。  
![\[显示报告中的见解的数据库负载图表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_AnalysisRepInsight_chart.png)  
![\[报告见解分析和建议部分\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_AnalysisRepInsight_Recommendations.png)

# 在性能详情中向性能分析报告添加标签
<a name="USER_PerfInsights.UsingDashboard.ManagePerfAnalysisReportTags"></a>

您可以在创建或查看报告时添加标签。您最多可以为一个报告添加 50 个标签。

您需要权限才能添加标签。有关 Performance Insights 的访问策略的更多信息，请参阅[为 Performance Insights 配置访问策略](USER_PerfInsights.access-control.md)。

要在创建报告时添加一个或多个标签，请参阅过程[在性能详情中创建性能分析报告](USER_PerfInsights.UsingDashboard.CreatingPerfAnlysisReport.md)中的步骤 6。

**在查看报告时添加一个或多个标签**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 向下滚动并选择**性能分析报告 - 新增**选项卡。

1. 选择要为其添加标签的报告。

   控制面板显示报告。

1. 向下滚动到**标签**，然后选择**管理标签**。

1. 选择**添加新标签**。

1. 输入**键**和**值 - *可选***，然后选择**添加新标签**。

   以下示例提供了为所选报告添加新标签的选项。  
![\[用于向报告添加新标签的“管理标签”窗口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_AddTag_ManageTags.png)

   为报告创建了一个新标签。

   报告的标签列表显示在控制面板上的**标签**部分。如果您想从报告中删除标签，请选择标签旁边的**移除**。

# 在性能详情中删除性能分析报告
<a name="USER_PerfInsights.UsingDashboard.DeletePerfAnalysisReport"></a>

您可以从**性能分析报告**选项卡中显示的报告列表中删除报告，也可以在查看报告时删除报告。

**删除报告**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 向下滚动并选择**性能分析报告 - 新增**选项卡。

1. 选择要删除的报告，然后选择右上角的**删除**。  
![\[Performance Insights 控制面板，其中选择了要删除的报告\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI_DeleteAnalysisRep.png)

   将显示一个确认窗口。选择确认后，将删除报告。

1. （可选）选择您要删除的报告的 **ID**。

   在报告页面中，选择右上角的**删除**。

   将显示一个确认窗口。选择确认后，将删除报告。

# 使用性能详情中的“主要 SQL”选项卡分析查询
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics"></a>

在 Amazon RDS Performance Insights 控制面板中，您可以在 **Top dimensions**（主要维度）表中的 **Top SQL**（主要 SQL）选项卡下找到有关运行中查询和最近查询的信息。您可以使用此信息来优化查询。

**Topics**
+ [“Top SQL”（主要 SQL）选项卡概览](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL)
+ [在 Performance Insights 控制面板中访问更多 SQL 文本](USER_PerfInsights.UsingDashboard.SQLTextSize.md)
+ [在 Performance Insights 控制面板中查看 SQL 统计数据](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.AnalyzingSQLLevel.md)

## “Top SQL”（主要 SQL）选项卡概览
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL"></a>

原定设置情况下，**Top SQL**（主要 SQL）选项卡将显示对数据库负载影响最大的 25 个 SQL 查询。为了帮助优化查询，您可以分析查询文本和 SQL 统计数据等信息。您还可以选择想要显示在 **Top SQL**（主要 SQL）选项卡中的统计数据。

**Topics**
+ [SQL 文本](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.text)
+ [SQL 统计数据](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.statistics)
+ [按等待状态排列的负载 (AAS)](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Load-by-waits)
+ [查看 SQL 信息](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.SQL-information)
+ [选择统计数据首选项](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Preferences)

### SQL 文本
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.text"></a>

原定设置情况下，**Top SQL**（主要 SQL）表中的每行为每条语句显示 500 字节的文本。

![\[SQL 文本\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/sql-text-oracle.png)


要了解如何查看超过默认 500 字节的 SQL 文本，请参阅[在 Performance Insights 控制面板中访问更多 SQL 文本](USER_PerfInsights.UsingDashboard.SQLTextSize.md)。

*SQL 摘要*是多个结构上相似但可能具有不同文本值的实际查询的组合。摘要用问号替换硬编码值。例如，摘要可能为 `SELECT * FROM emp WHERE lname= ?`。此摘要可能包含以下子查询：

```
SELECT * FROM emp WHERE lname = 'Sanchez'
SELECT * FROM emp WHERE lname = 'Olagappan'
SELECT * FROM emp WHERE lname = 'Wu'
```

要查看摘要中的文字 SQL 语句，请选择查询，然后选择加号 (\$1)。在以下示例中，所选查询为摘要。

![\[选定的 SQL 摘要\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_4b.png)


**注意**  
SQL 摘要将相似的 SQL 语句进行分组，但不会编辑敏感信息。

Performance Insights 可以将 Oracle SQL 文本显示为 **Unknown**（未知）。文本会在以下情况下具有此状态：
+ 除 `SYS` 以外的 Oracle 数据库用户处于活动状态，但当前未执行 SQL。例如，当并行查询完成时，查询协调器将等待帮助程序进程发送会话统计数据。在等待期间，查询文本将显示 **Unknown**（未知）。
+ 对于标准版 2 上的 RDS for Oracle 实例，Oracle 资源管理器会限制并行线程的数量。执行此工作的后台进程会导致查询文本显示为 **Unknown**（未知）。

### SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.statistics"></a>

*SQL 统计数据*是关于 SQL 查询的性能相关指标。例如，性能详情可能会显示每秒执行数或每秒处理的行数。性能详情仅收集最常见查询的统计数据。通常，它们与 Performance Insights 控制面板中显示的按负载列出的主要查询匹配。

**Top SQL**（主要 SQL）表中的每一行显示了 SQL 语句或摘要的相关统计数据，如以下示例所示。

![\[主要 SQL\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_4.png)


Performance Insights 可以报告 SQL 统计数据的 `0.00` 和 `-`（未知）。这种情况在以下条件下发生：
+ 只存在一个样本。例如，Performance Insights 根据 `pg_stat_statements` 视图的多个样本，计算 RDS PostgreSQL 的更改速率。当工作负载运行时间较短时，Performance Insights 可能只收集一个样本，这意味着它无法计算更改速率。未知值用短划线 (`-`) 表示。
+ 两个样本具有相同的值。由于未发生更改，Performance Insights 无法计算更改速率，因此它将速率报告为 `0.00`。
+ RDS PostgreSQL 语句缺乏有效的标识符。PostgreSQL 仅在解析和分析之后才会为语句创建标识符。因此，语句可以存在于 PostgreSQL 内部内存结构中，而无需标识符。由于 Performance Insights 每秒对内部内存结构进行一次采样，因此低延迟查询可能只出现在单个样本中。如果查询标识符对该样本不可用，则 Performance Insights 无法将此语句与其统计数据进行关联。未知值用短划线 (`-`) 表示。

有关 Amazon RDS 引擎的 SQL 统计数据的说明，请参阅 [Performance Insights 的 SQL 统计数据](sql-statistics.md)。

### 按等待状态排列的负载 (AAS)
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Load-by-waits"></a>

在 **Top SQL**（主要 SQL）中，**按等待状态排列的负载 (AAS)** 列说明了与每个主要负载项目关联的数据库负载的百分比。此列按当前在**数据库负载图表**中选择的分组方式反映该项目的负载。有关平均活动会话数（AAS）的更多信息，请参阅[平均活动会话数](USER_PerfInsights.Overview.ActiveSessions.md#USER_PerfInsights.Overview.ActiveSessions.AAS)。

例如，您可以按等待状态对**数据库负载**图表进行分组。您可以检查主要负载项目表中的 SQL 查询。在这种情况下，系统将对 **DB Load by Waits (按等待状态排列的数据库负载)** 栏进行大小调整、分段和颜色编码，以显示该查询在导致给定等待状态方面所起的作用大小，它还会显示哪些等待状态正在影响选定的查询。

![\[按等待状态排列的数据库负载\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_6.png)


### 查看 SQL 信息
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.SQL-information"></a>

在 **Top SQL**（主要 SQL）表中，您可以打开一条语句以查看其信息。信息将显示在底部窗格中。

![\[选定文本查询的“主要 SQL”表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-sql-ids-open.png)


与 SQL 语句关联的以下类型的标识符 (ID)：
+ **支持 SQL ID** – SQL ID 的哈希值。此值仅用于当您处理 AWS Support 时引用 SQL ID。AWSSupport 无法访问您实际的 SQL ID 和 SQL 文本。
+ **支持摘要 ID** – 摘要 ID 的哈希值。此值仅用于当您处理 AWS Support 时引用摘要 ID。AWSSupport 无法访问您实际的摘要 ID 和 SQL 文本。

### 选择统计数据首选项
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Preferences"></a>

您可以通过选择 **Preferences**（首选项）图标来控制 **Top SQL**（主要 SQL）选项卡中显示的统计数据。

![\[统计数据首选项\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-sql-ids-preferences-icon.png)


当您选择 **Preferences (首选项)** 图标时，**Preferences (首选项)** 窗口将打开。以下屏幕截图是 **Preferences**（首选项）窗口的示例。

![\[“首选项”窗口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-sql-ids-preferences.png)


要启用您希望在 **Top SQL**（主要 SQL）选项卡中显示的统计数据，请使用鼠标滚动到窗口底部，然后选择 **Continue**（继续）。

有关 Amazon RDS 引擎每秒或每次调用统计数据的更多信息，请参阅[Performance Insights 的 SQL 统计数据](sql-statistics.md)中引擎特定的 SQL 统计数据部分

# 在 Performance Insights 控制面板中访问更多 SQL 文本
<a name="USER_PerfInsights.UsingDashboard.SQLTextSize"></a>

预设情况下，**Top SQL**（主要 SQL）表中的每行为每个 SQL 语句显示 500 字节的 SQL 文本。

![\[500 字节的 SQL\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-top-sql-bytes.png)


当 SQL 语句超过 500 字节时，您可以在 **Top SQL**（主要 SQL）表下的 **SQL text**（SQL 文本）部分中查看更多文本。在这种情况下，**SQL text**（SQL 文本）中显示的文本的最大长度为 4KB。此限制由控制台引入，并受数据库引擎设置的限制的约束。要保存 **SQL text**（SQL 文本）中显示的文本，请选择 **Download**（下载）。

**Topics**
+ [Amazon RDS 引擎 的文本大小限制](#sql-text-engine-limits)
+ [为 Amazon RDS for PostgreSQL 数据库实例设置 SQL 文本限制](USER_PerfInsights.UsingDashboard.SQLTextLimit.md)
+ [在 Performance Insights 控制面板中查看和下载 SQL 文本](view-download-text.md)

## Amazon RDS 引擎 的文本大小限制
<a name="sql-text-engine-limits"></a>

下载 SQL 文本时，数据库引擎将确定文本的最大长度。您可以下载最多为以下每个引擎限制的 SQL 文本。


| 数据库引擎 | 已下载文本的最大长度 | 
| --- | --- | 
| Amazon RDS for MySQL 和 MariaDB | 当启用性能架构时，长度固定为 4096 字节。如果未启用性能架构，则长度固定为 65535 字节。 | 
| Amazon RDS for Microsoft SQL Server | 4,096 个字符 | 
| Amazon RDS for Oracle | 1,000 字节 | 

性能详情控制台的 **SQL text**（SQL 文本）部分最多显示引擎返回的最大长度的文本。例如，如果 MySQL 最多返回 1 KB 到 Performance Insights，则只能收集并显示 1 KB，即使原始查询较大。因此，当您在 **SQL text**（SQL 文本）中查看查询或下载查询时，性能详情将返回相同的字节数。

如果您使用 AWS CLI 或 API，则性能详情没有控制台强制实施的 4KB 限制。`DescribeDimensionKeys` 和 `GetResourceMetrics` 返回最多 500 字节。

**注意**  
`GetDimensionKeyDetails` 将返回完整的查询，但大小受引擎限制约束。

# 为 Amazon RDS for PostgreSQL 数据库实例设置 SQL 文本限制
<a name="USER_PerfInsights.UsingDashboard.SQLTextLimit"></a>

Amazon RDS for PostgreSQL 以不同的方式处理文本。您可以使用数据库实例参数 `track_activity_query_size` 设置文本大小限制。该参数具有以下特征：

默认文本大小  
在 Amazon RDS for PostgreSQL 版本 9.6 中，`track_activity_query_size` 参数的默认设置为 1024 字节。在 Amazon RDS for PostgreSQL 版本 10 或更高版本中，默认值为 4096 字节。

最大文本大小  
对于 Amazon RDS for PostgreSQL 版本 12 及更低版本，`track_activity_query_size` 的限制为 102400 字节。版本 13 及更高版本的最大值为 1 MB。  
如果引擎返回 1 MB 至 Performance Insights，则控制台仅显示前 4 KB。如果您下载查询，您将得到完整的 1 MB。在这种情况下，查看和下载返回不同的字节数。有关 `track_activity_query_size` 数据库实例参数的更多信息，请参阅 PostgreSQL 文档中的[运行时统计数据](https://www.postgresql.org/docs/current/runtime-config-statistics.html)。

要增加 SQL 文本大小，请增加 `track_activity_query_size` 限制。要修改参数，请更改与 Amazon RDS for PostgreSQL 数据库实例关联的参数组中的参数设置。

**在实例使用默认参数组时更改设置**

1. 为相应数据库引擎和数据库引擎版本创建新的数据库实例参数组。

1. 在新参数组中设置参数。

1. 将新参数组与数据库实例相关联。

有关设置数据库实例参数的信息，请参阅 [在 Amazon RDS 中修改数据库参数组中的参数](USER_WorkingWithParamGroups.Modifying.md)。

# 在 Performance Insights 控制面板中查看和下载 SQL 文本
<a name="view-download-text"></a>

在 Performance Insights 控制面板中，您可以查看或下载 SQL 文本。

**在 Performance Insights 控制面板中查看更多 SQL 文本**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择 **Performance Insights**。

1. 选择一个数据库实例。

1. 在性能详情控制面板中向下滚动到**主要 SQL** 选项卡。

1. 选择加号来展开 SQL 摘要，然后选择该摘要的子查询之一。

   具有大于 500 字节的文本的 SQL 语句如下图所示。  
![\[具有大文本的 SQL 语句\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-large-text-1.png)

1. 向下滚动至 **SQL text**（SQL 文本）选项卡。  
![\[SQL 信息部分显示更多 SQL 文本\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-large-text-2.png)

   Performance Insights 控制面板可以为每个 SQL 语句最多显示 4096 字节。

1. （可选）选择**复制**来复制所显示的 SQL 语句，或选择**下载**来下载 SQL 语句以查看不超过数据库引擎限制的 SQL 文本。
**注意**  
要复制或下载 SQL 语句，请禁用弹出窗口阻止程序。

# 在 Performance Insights 控制面板中查看 SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.AnalyzingSQLLevel"></a>

在 Performance Insights 控制面板中，SQL 统计数据可在 **Database load**（数据库负载）图表的 **Top SQL**（主要 SQL）选项卡中找到。

**查看 SQL 统计数据**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择 **Performance Insights**。

1. 在页面顶部，选择要查看 SQL 统计数据的数据库。

1. 滚动到页面底部并选择 **Top SQL**（主要 SQL）选项卡。

1. 选择单独的语句或摘要查询。  
![\[查看正在运行的查询的指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_sql.png)

1. 通过选择图表右上角的齿轮图标来选择要显示的统计数据。有关 Amazon RDS 引擎的 SQL 统计数据的说明，请参阅 [Performance Insights 的 SQL 统计数据](sql-statistics.md)。

   以下示例显示 Oracle 数据库实例的统计数据首选项。  
![\[用于运行 Oracle 数据库实例查询的指标的首选项\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_pref_oracle.png)

   以下示例显示 MariaDB 和 MySQL 数据库实例的首选项。  
![\[用于运行 MariaDB 和 MySQL 数据库实例查询的指标的首选项。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_pref_ams.png)

1. 选择“Save（保存）”以保存首选项。

   **Top SQL**（主要 SQL）表将刷新。

   以下示例显示 Oracle SQL 查询的统计数据。  
![\[SQL 查询的统计数据\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_per_sql_stats_oracle.png)

# 分析 Oracle 最大 PDB 负载
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.TopPDB"></a>

分析 Oracle 容器数据库（CDB）负载时，您可能想了解哪些可插拔数据库（PDB）对数据库负载的影响最大。您可能还希望比较运行类似查询的各个 PDB 的性能，以微调性能。有关 Oracle CDB 的更多信息，请参阅 [RDS for Oracle 数据库架构](oracle-multi-architecture.md)。

在 Amazon RDS Performance Insights 控制面板中，您可以在**维度**选项卡的**最大 PDB** 选项卡下查找有关可插拔数据库（PDB）的信息。

有关此功能的区域、数据库引擎和实例类支持信息，请参阅 [支持性能详情功能的 Amazon RDS 数据库引擎、区域和实例类](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport)。

**分析 Oracle CDB 中的最大 PDB 负载**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择 **Performance Insights**。

1. 选择 Oracle CDB 实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 在**数据库负载（DB 负载）**部分，选择“划分依据”旁边的**可插拔数据库（PDB）**。

   平均活动会话图表显示了负载最大的 PDB。PDB 标识符显示在彩色编码方块的右侧。每个标识符都唯一标识一个 PDB。  
![\[显示 PDB 负载的平均活动会话图表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_topPDB_AAS.png)

1. 向下滚动至 **Top SQL**（热门 SQL）选项卡。

   在以下示例中，您可以查看相同的 SQL 查询及其驱动到多个 PDB 的负载。  
![\[多个 PDB 的 SQL 查询负载相同\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_topPDB_ex1.png)

   在以下示例中，单个 PDB 处理的负载高于 CDB 中的其他 PDB。  
![\[PDB 的 SQL 查询负载很高\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf_insights_topPDB_ex2.png)

   有关 Oracle CDB 的更多信息，请参阅 [CDB 和 PDB](https://docs.oracle.com/en/database/oracle/oracle-database/21/cncpt/CDBs-and-PDBs.html#GUID-FC2EB562-ED31-49EF-8707-C766B6FE66B8)。

# 使用 Amazon RDS 的性能详情控制面板分析执行计划
<a name="USER_PerfInsights.UsingDashboard.AnalyzingPlans"></a>

在 Amazon RDS 性能详情控制面板中，您可以找到有关 Oracle 和 SQL Server 数据库实例的执行计划的信息。您可以使用这些信息来了解哪些计划对数据库负载的贡献最大。

要分析 Oracle 或 SQL Server 执行计划，请参阅以下主题。

**分析执行计划**
+ [使用 Amazon RDS 的性能详情控制面板分析 Oracle 执行计划](USER_PerfInsights.UsingDashboard.AccessPlans.md)
+ [使用 Amazon RDS 的性能详情控制面板分析 SQL Server 执行计划](USER_PerfInsights.UsingDashboard.AccessPlansSqlServer.md)

## 分析 Amazon RDS 的执行计划概述
<a name="USER_PerfInsights.UsingDashboard.AnalyzingPlans.Overview"></a>

您可以使用 Amazon RDS 性能详情控制面板，来了解哪些计划对 Oracle 和 SQL Server 数据库实例的数据库负载贡献最大。

 例如，给定时间的主要 SQL 语句可能正在使用下表所示的计划。


****  

| 主要 SQL | 规划 | 
| --- | --- | 
|  SELECT SUM(amount\$1sold) FROM sales WHERE prod\$1id = 10  |  计划 A  | 
|  SELECT SUM(amount\$1sold) FROM sales WHERE prod\$1id = 521  |  计划 B  | 
|  SELECT SUM(s\$1total) FROM sales WHERE region = 10  |  计划 A  | 
|  SELECT \$1 FROM emp WHERE emp\$1id = 1000  |  计划 C  | 
|  SELECT SUM(amount\$1sold) FROM sales WHERE prod\$1id = 72  |  计划 A  | 

使用 Performance Insights 的计划功能，您可以执行以下操作：
+ 了解主要 SQL 查询使用哪些计划。

  例如，您可能会发现，大多数数据库负载是由使用计划 A 和计划 B 的查询生成的，只有很小一部分查询使用计划 C。
+ 比较同一查询的不同计划。

  在前面的示例中，除产品 ID 外，三个查询都相同。其中两个查询使用计划 A，另一个查询使用计划 B。若要查看两个计划的差异，您可以使用 Performance Insights。
+ 了解查询何时切换到新计划。

  您可能会看到查询使用了计划 A，然后在某个时间切换到计划 B。此时数据库是否发生了变化？ 例如，如果表为空，优化程序可能会选择全表扫描。如果表加载了一百万行，优化程序可能会切换至索引范围扫描。
+ 深入了解成本最高的计划的具体步骤。

  例如，对于长时间运行的查询，可能会在 equi-join 中显示缺少联接条件。此缺失条件会强制进行笛卡尔联接，将两个表的所有行联接起来。

您可以使用 Performance Insights 的计划捕获功能来执行上述任务。正如您可以按等待事件和主要 SQL 对查询进行切片一样，您也可以按计划维度对查询进行切片。

# 使用 Amazon RDS 的性能详情控制面板分析 Oracle 执行计划
<a name="USER_PerfInsights.UsingDashboard.AccessPlans"></a>

分析 Oracle Database 上的数据库负载时，您可能想了解哪些计划对数据库负载的影响最大。您可以使用性能详情的计划捕获特征，来确定哪些计划对数据库负载的贡献最大。

**使用控制台分析 Oracle 执行计划**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**性能详情**。

1. 选择 Oracle 数据库实例。将为该数据库实例显示 Performance Insights 控制面板。

1. 在 **Database load (DB load)**（数据库负载）部分，选择 **Slice by**（切片依据）旁边的 **Plans**（计划）。

   平均活动会话图表显示了主要 SQL 语句使用的计划。计划哈希值显示在彩色方块的右侧。每个哈希值唯一标识每个计划。  
![\[按计划切片\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-slice-by-plans.png)

1. 向下滚动至 **Top SQL**（主要 SQL）选项卡。

   在以下示例中，主要 SQL 摘要具有两个计划。您可以通过语句中的问号来判断其是否为摘要。  
![\[选择摘要计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/top-sql-plans-unselected.png)

1. 选择摘要，将其扩展到其组件语句中。

   在以下示例中，`SELECT` 语句为摘要查询。摘要中的组件查询使用两种不同的计划。计划的颜色对应于数据库负载图表。摘要中的计划总数在显示第二列。  
![\[选择摘要计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-digest-plan.png)

1. 向下滚动，然后从 **Plans for digest query**（摘要查询计划）列表中选择两个要比较的 **Plans**（计划）。

   您可以一次查看一个或两个查询计划。以下屏幕截图比较了摘要中的两个计划，哈希值分别为 2032253151 和 1117438016。在以下示例中，运行此摘要查询的平均活动会话中有 62% 使用左侧的计划，而 38% 使用右侧的计划。  
![\[并排比较计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-compare-plan.png)

   在此示例中，两个计划存在明显不同。计划 2032253151 中的步骤 2 使用索引扫描，计划 1117438016 中的步骤 2 使用全表扫描。对于具有大量行的表，使用索引扫描对单行进行查询通常更快。  
![\[并排比较计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-table-access.png)

1. （可选）选择 **Copy**（复制）将计划复制到剪贴板，或者选择 **Download**（下载）将计划保存到硬盘。

# 使用 Amazon RDS 的性能详情控制面板分析 SQL Server 执行计划
<a name="USER_PerfInsights.UsingDashboard.AccessPlansSqlServer"></a>

分析 SQL Server 数据库上的数据库负载时，您可能想了解哪些计划对数据库负载的贡献最大。您可以使用性能详情的计划捕获特征，来确定哪些计划对数据库负载的贡献最大。

**使用控制台分析 SQL Server 执行计划**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**性能详情**。

1. 选择 SQL Server 数据库实例。将为该数据库实例显示 Performance Insights 控制面板。

1. 在 **Database load (DB load)**（数据库负载）部分，选择 **Slice by**（切片依据）旁边的 **Plans**（计划）。

   平均活动会话图表显示了主要 SQL 语句使用的计划。计划哈希值显示在彩色方块的右侧。每个哈希值唯一标识每个计划。  
![\[按计划切片\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-slice-by-plans-sqlserver.png)

1. 向下滚动至 **Top SQL**（主要 SQL）选项卡。

   在以下示例中，主要 SQL 摘要具有三个计划。SQL 语句中存在问号表示该语句是摘要。要查看完整的 SQL 语句，请在 **SQL 语句**列中选择一个值。  
![\[选择摘要计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/top-sql-plans-unselected-sqlserver.png)

1. 选择摘要，将其扩展到其组件语句中。

   在以下示例中，`SELECT` 语句为摘要查询。摘要中的组件查询使用三种不同的执行计划。分配给计划的颜色对应于数据库负载图表。  
![\[选择摘要计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-digest-plan-sqlserver.png)

1. 向下滚动，然后从 **Plans for digest query**（摘要查询计划）列表中选择两个要比较的 **Plans**（计划）。

   您可以一次查看一个或两个查询计划。以下屏幕截图比较了摘要中的两个计划。在以下示例中，运行此摘要查询的平均活动会话中有 40% 使用左侧的计划，而 28% 使用右侧的计划。  
![\[并排比较计划\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-compare-plan-sqlserver.png)

   在前面的示例中，这些计划在一个重要方面有所不同。左侧计划中的步骤 2 使用表扫描，而右侧的计划使用聚集索引扫描。对于具有大量行的表，使用聚集索引扫描，检索单行的查询几乎总是更快。

1. （可选）选择“计划详细信息”表上的**设置**图标来自定义列的可见性和顺序。以下屏幕截图显示了“计划详细信息”表，其第二列是**输出列表**列。  
![\[自定义“计划详细信息”表中各列的可见性和顺序\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/pi-plan-fields-sql-server.png)

1. （可选）选择 **Copy**（复制）将计划复制到剪贴板，或者选择 **Download**（下载）将计划保存到硬盘。

**注意**  
性能详情使用分层树表来显示估计的执行计划。该表包括每条语句的部分执行信息。有关“计划详细信息”表中各列的更多信息，请参阅 SQL Server 文档中的 [SET SHOWPLAN\$1ALL](https://learn.microsoft.com/en-us/sql/t-sql/statements/set-showplan-all-transact-sql)。要显示估计的执行计划的完整执行信息，请选择**下载**来下载该计划，然后将该计划上传到 SQL Server Management Studio。有关使用 SQL Server Management Studio 显示估计的执行计划的更多信息，请参阅 SQL Server 文档中的[显示估计的执行计划](https://learn.microsoft.com/en-us/sql/relational-databases/performance/display-the-estimated-execution-plan)。

# 查看性能详情主动建议
<a name="USER_PerfInsights.InsightsRecommendationViewDetails"></a>

Amazon RDS 性能详情可监控特定指标，并自动通过分析指定资源可能存在问题的级别来创建阈值。当新的指标值在给定时间段内超过预定义的阈值时，性能详情会生成主动建议。此建议有助于防止数据库性能将来受到影响。要获得这些主动建议，您必须开启性能详情，并设置付费套餐保留期。

有关开启 Performance Insights 的更多信息，请参阅[为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)。有关性能详情的定价和数据留存的更多信息，请参阅[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md)。

要了解主动建议支持的区域、数据库引擎和实例类别，请参阅[支持性能详情功能的 Amazon RDS 数据库引擎、区域和实例类](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport)。

您可以在建议详细信息页面中查看主动建议的详细分析和建议的调查。

有关建议的更多信息，请参阅 [来自 Amazon RDS 的建议](monitoring-recommendations.md)。

**查看主动建议的详细分析**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，执行以下任何一项操作：
   + 选择**建议**。

     **建议**页面显示按您账户中所有资源的严重性排序的建议列表。
   + 选择**数据库**，然后在数据库页中为资源选择**建议**。

     **建议**选项卡显示所选资源的建议及其详细信息。

1. 查找主动建议，然后选择**查看详细信息**。

   此时会显示建议详细信息页面。标题提供了受影响资源的名称以及检测到的问题和严重性。

   以下是建议详细信息页面上的组件：
   + **建议摘要** - 检测到的问题、建议和问题状态、问题开始和结束时间、建议修改时间以及引擎类型。  
![\[控制台中显示“建议摘要”部分的主动建议的“建议详细信息”页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/RecommendationProactive-RecSummary.png)
   + **指标** - 检测到的问题的图表。每个图表都显示由资源的基线行为确定的阈值，以及从问题开始时间报告的指标数据。  
![\[控制台中显示“指标”部分的主动建议的“建议详细信息”页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/RecommedationProactive_Metrics.png)
   + **分析和建议** - 建议和所提建议的理由。  
![\[控制台中显示“分析和建议”部分的主动建议的“建议详细信息”页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/ProactiveRecommendation-AnalysisAndRec.png)

   您可以查看问题的原因，然后执行建议的操作来解决问题，或者选择右上角的**忽略**来忽略建议。

# 使用 Performance Insights API for Amazon RDS 检索指标
<a name="USER_PerfInsights.API"></a>

开启性能详情后，API 将提供实例性能的可见性。Amazon CloudWatch Logs 日志为AWS服务提供售卖监控指标的权威源。

Performance Insights 提供了按平均活动会话 (AAS) 衡量的数据库负载的特定于域的视图。对 API 使用者而言，此指标看起来像是二维时间序列数据集。数据的时间维度提供所查询时间范围的每个时间点的数据库负载数据。每个时间点将分解与所请求维度相关的整体负载，如相应时间点测量的 `SQL`、`Wait-event`、`User` 或 `Host`。

Amazon RDS Performance Insights 用于监控您的 Amazon RDS 数据库实例，使您可以分析数据库性能和排查数据库性能问题。查看 Performance Insights 数据的一种方法是在 AWS 管理控制台中。Performance Insights 还提供公有 API，以便您可以查询自己的数据。您可以使用 API 来执行以下操作：
+ 将数据卸载到数据库中
+ 将 Performance Insights 数据添加到现有监控控制面板
+ 构建监控工具

要使用 Performance Insights API，请在您的 Amazon RDS 数据库实例之一上启用 Performance Insights。有关启用 Performance Insights 的信息，请参阅 [为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)。有关 Performance Insights API 的更多信息，请参阅 [Amazon RDS Performance Insights API 参考](https://docs.aws.amazon.com/performance-insights/latest/APIReference/Welcome.html)。

Performance Insights API 提供以下操作。


****  

|  Performance Insights 操作  |  AWS CLI command  |  描述  | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_CreatePerformanceAnalysisReport.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_CreatePerformanceAnalysisReport.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/CreatePerformanceAnalysisReport.html](https://docs.aws.amazon.com/cli/latest/reference/pi/CreatePerformanceAnalysisReport.html)  |  为数据库实例创建特定时间段的性能分析报告。结果为 `AnalysisReportId`，这是报告的唯一标识符。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DeletePerformanceAnalysisReport.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DeletePerformanceAnalysisReport.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/DeletePerformanceAnalysisReport.html](https://docs.aws.amazon.com/cli/latest/reference/pi/DeletePerformanceAnalysisReport.html)  |  删除性能分析报告。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html](https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html)  |  对于特定的时间段，检索指标的前 N 个维度键。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html)  |  检索数据库实例或数据源的指定维度组的属性。例如，如果您指定了 SQL ID，并且有维度详细信息，则 `GetDimensionKeyDetails` 将检索与此 ID 关联的维度 `db.sql.statement` 的全文。此操作很有用，因为 `GetResourceMetrics` 和 `DescribeDimensionKeys` 不支持检索大型 SQL 语句文本。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetPerformanceAnalysisReport.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetPerformanceAnalysisReport.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/GetPerformanceAnalysisReport.html](https://docs.aws.amazon.com/cli/latest/reference/pi/GetPerformanceAnalysisReport.html)  |  检索报告，包括报告的见解。结果包括报告状态、报告 ID、报告时间详情、见解和建议。  | 
| [GetResourceMetadata](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetadata.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html)  |  检索不同功能的元数据。例如，元数据可以表明特定数据库实例上的某个功能已打开或关闭。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html)  |  检索一组数据来源在一段时间内的 Performance Insights 指标。您可以提供特定维度组和维度，并为每个组提供聚合和筛选条件。  | 
| [ListAvailableResourceDimensions](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceDimensions.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html)  |  检索特定实例上每个特定指标类型可查询的维度。  | 
| [ListAvailableResourceMetrics](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceMetrics.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html)  |  检索指定指标类型的所有可用指标，指定数据库实例可用该指标进行查询。  | 
|  `[ListPerformanceAnalysisReports](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListPerformanceAnalysisReports.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-performance-analysis-reports.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-performance-analysis-reports.html)  | 检索数据库实例的所有可用分析报告。这些报告根据每个报告的开始时间列出。 | 
|  `[ListTagsForResource](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListTagsForResource.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-tags-for-resource.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-tags-for-resource.html)  |  列出添加到资源的所有元数据标签。该列表包含标签的名称和值。  | 
|  `[TagResource](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_TagResource.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/tag-resource.html](https://docs.aws.amazon.com/cli/latest/reference/pi/tag-resource.html)  |  将元数据标签添加到 Amazon RDS 资源中。该标签包含名称和值。  | 
|  `[UntagResource](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_UntagResource.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/untag-resource.html](https://docs.aws.amazon.com/cli/latest/reference/pi/untag-resource.html)  |  从资源中删除元数据标签。  | 

有关检索性能详情的时间序列指标和 AWS CLI 示例的更多信息，请参阅以下主题。

**Topics**
+ [检索性能详情的时间序列指标](USER_PerfInsights.API.TimeSeries.md)
+ [Performance Insights 的 AWS CLI 示例](USER_PerfInsights.API.Examples.md)

# 检索性能详情的时间序列指标
<a name="USER_PerfInsights.API.TimeSeries"></a>

`GetResourceMetrics` 操作从 Performance Insights 数据中检索一个或多个时间序列指标。`GetResourceMetrics` 需要指标和时间段，并返回包含数据点列表的响应。

例如，AWS 管理控制台使用 `GetResourceMetrics` 来填充 **Counter Metrics (计数器指标)** 图表和 **Database Load (数据库负载)** 图表，如下图所示。

![\[“Counter Metrics (计数器指标)”和“Database Load (数据库负载)”图表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-api-charts.png)


`GetResourceMetrics` 返回的所有指标都是标准的时间序列指标，但 `db.load` 除外。此指标显示在 **Database Load (数据库负载)** 图表中。`db.load` 指标不同于其他时间序列指标，因为您可以将它分为称为*维度*的子组件。在上图中，按组成 `db.load` 的等待状态对 `db.load` 进行细分和分组。

**注意**  
`GetResourceMetrics` 也可以返回 `db.sampleload` 指标，但 `db.load` 指标在大多数情况下是合适的。

有关 `GetResourceMetrics` 返回的计数器指标的信息，请参阅[性能详情计数器指标](USER_PerfInsights_Counters.md)。

指标支持以下计算：
+ 平均值 – 指标在一段时间内的平均值。在指标名称后面附加 `.avg`。
+ 最小值 – 指标在一段时间内的最小值。在指标名称后面附加 `.min`。
+ 最大值 – 指标在一段时间内的最大值。在指标名称后面附加 `.max`。
+ 总计 – 指标值在一段时间内的总计。在指标名称后面附加 `.sum`。
+ 样本数 – 在一段时间内收集指标的次数。在指标名称后面附加 `.sample_count`。

例如，假定在 300 秒（5 分钟）时段内收集指标，并且每分钟收集一次指标。各分钟的值为 1、2、3、4 和 5。在本例中，返回以下计算：
+ 平均值 – 3
+ 最小值 – 1
+ 最大值 – 5
+ 总计 – 15
+ 样本数 – 5

有关使用 `get-resource-metrics` AWS CLI 命令的信息，请参阅 [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html)。

对于 `--metric-queries` 选项，请指定一个或多个要获取其结果的查询。每个查询包括必需的 `Metric` 和可选的 `GroupBy` 和 `Filter` 参数。以下是 `--metric-queries` 选项规范的示例。

```
{
   "Metric": "string",
   "GroupBy": {
     "Group": "string",
     "Dimensions": ["string", ...],
     "Limit": integer
   },
   "Filter": {"string": "string"
     ...}
```

# Performance Insights 的 AWS CLI 示例
<a name="USER_PerfInsights.API.Examples"></a>

在以下各节中，详细了解性能详情的 AWS Command Line Interface（AWS CLI）并使用 AWS CLI 示例。

**Topics**
+ [性能详情的 AWS CLI 的内置帮助](#USER_PerfInsights.API.CLI)
+ [检索计数器指标](#USER_PerfInsights.API.Examples.CounterMetrics)
+ [检索首要等待事件的数据库负载平均值](#USER_PerfInsights.API.Examples.DBLoadAverage)
+ [检索首要 SQL 的数据库负载平均值](#USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL)
+ [检索按 SQL 筛选的数据库负载平均值](#USER_PerfInsights.API.Examples.DBLoadAverageFilterBySQL)
+ [检索 SQL 语句的全文](#USER_PerfInsights.API.Examples.GetDimensionKeyDetails)
+ [创建一段时间的性能分析报告](#USER_PerfInsights.API.Examples.CreatePerfAnalysisReport)
+ [检索性能分析报告](#USER_PerfInsights.API.Examples.GetPerfAnalysisReport)
+ [列出数据库实例的所有性能分析报告](#USER_PerfInsights.API.Examples.ListPerfAnalysisReports)
+ [删除性能分析报告](#USER_PerfInsights.API.Examples.DeletePerfAnalysisReport)
+ [向性能分析报告中添加标签](#USER_PerfInsights.API.Examples.TagPerfAnalysisReport)
+ [列出性能分析报告的所有标签](#USER_PerfInsights.API.Examples.ListTagsPerfAnalysisReport)
+ [从性能分析报告中删除标签](#USER_PerfInsights.API.Examples.UntagPerfAnalysisReport)

## 性能详情的 AWS CLI 的内置帮助
<a name="USER_PerfInsights.API.CLI"></a>

您可以使用 AWS CLI 查看 Performance Insights 数据。可以通过在命令行上输入以下内容来查看 Performance Insights 的 AWS CLI 命令的帮助。

```
aws pi help
```

如果尚未安装 AWS CLI，请参阅《AWS CLI 用户指南》**中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 来了解安装信息。

## 检索计数器指标
<a name="USER_PerfInsights.API.Examples.CounterMetrics"></a>

以下屏幕截图显示 AWS 管理控制台 中的两个计数器指标图表。

![\[计数器指标图表。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-api-counters-charts.png)


以下示例显示如何收集 AWS 管理控制台 用于生成两个计数器指标图表的相同数据。

对于 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

对于：Windows

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

还可以通过为 `--metrics-query` 选项指定文件来使命令更易于读取。以下示例为该选项使用名为 query.json 的文件。此文件具有以下内容。

```
[
    {
        "Metric": "os.cpuUtilization.user.avg"
    },
    {
        "Metric": "os.cpuUtilization.idle.avg"
    }
]
```

运行以下命令来使用此文件。

对于 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

对于：Windows

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

上一个示例为各选项指定了以下值：
+ `--service-type` – 对于 Amazon RDS 来说为 `RDS`
+ `--identifier` – 数据库实例的资源 ID
+ `--start-time` 和 `--end-time`：要查询的期间的 ISO 8601 `DateTime` 值，支持多种格式

它查询一小时时间范围：
+ `--period-in-seconds`：对于每分钟查询来说为 `60`
+ `--metric-queries`：两个查询的数组，每个查询只用于一个指标。

  指标名称使用点在有用的类别中分类指标，最后一个元素是函数。在示例中，对于每个查询来说，此函数是 `avg`。与 Amazon CloudWatch 一样，支持的函数为 `min`、`max`、`total` 和 `avg`。

响应类似于以下内容。

```
{
    "Identifier": "db-XXX",
    "AlignedStartTime": 1540857600.0,
    "AlignedEndTime": 1540861200.0,
    "MetricList": [
        { //A list of key/datapoints 
            "Key": {
                "Metric": "os.cpuUtilization.user.avg" //Metric1
            },
            "DataPoints": [
                //Each list of datapoints has the same timestamps and same number of items
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 4.0
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 4.0
                },
                {
                    "Timestamp": 1540857780.0, //Minute 3
                    "Value": 10.0
                }
                //... 60 datapoints for the os.cpuUtilization.user.avg metric
            ]
        },
        {
            "Key": {
                "Metric": "os.cpuUtilization.idle.avg" //Metric2
            },
            "DataPoints": [
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 12.0
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 13.5
                },
                //... 60 datapoints for the os.cpuUtilization.idle.avg metric 
            ]
        }
    ] //end of MetricList
} //end of response
```

响应具有 `Identifier`、`AlignedStartTime` 和 `AlignedEndTime`。但 `--period-in-seconds` 值为 `60`，开始和结束时间已与分钟对齐。如果 `--period-in-seconds` 为 `3600`，则开始和结束时间已与小时对齐。

响应中的 `MetricList` 具有许多条目，每个条目具有 `Key` 和 `DataPoints` 条目。每个 `DataPoint` 具有 `Timestamp` 和 `Value`。每个 `Datapoints` 列表具有 60 个数据点，因为查询针对一小时内的每分钟数据，具有 `Timestamp1/Minute1`、`Timestamp2/Minute2` 等，一直到 `Timestamp60/Minute60`。

因为查询用于两个不同的计数器指标，响应 `MetricList` 中有两个元素。

## 检索首要等待事件的数据库负载平均值
<a name="USER_PerfInsights.API.Examples.DBLoadAverage"></a>

以下示例是 AWS 管理控制台用于生成堆栈区域线图的相同查询。此示例检索按前七个等待事件划分负载的最后一个小时的 `db.load.avg`。命令与 [检索计数器指标](#USER_PerfInsights.API.Examples.CounterMetrics) 中的命令相同。不过，query.json 文件具有以下内容。

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_event", "Limit": 7 }
    }
]
```

运行如下命令。

对于 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

对于：Windows

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

此示例指定指标 `db.load.avg` 和前七个等待事件的 `GroupBy`。有关此示例的有效值的详细信息，请参阅 *Performance Insights API 参考* 中的 [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)。

响应类似于以下内容。

```
{
    "Identifier": "db-XXX",
    "AlignedStartTime": 1540857600.0,
    "AlignedEndTime": 1540861200.0,
    "MetricList": [
        { //A list of key/datapoints 
            "Key": {
                //A Metric with no dimensions. This is the total db.load.avg
                "Metric": "db.load.avg"
            },
            "DataPoints": [
                //Each list of datapoints has the same timestamps and same number of items
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 0.5166666666666667
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 0.38333333333333336
                },
                {
                    "Timestamp": 1540857780.0, //Minute 3
                    "Value": 0.26666666666666666
                }
                //... 60 datapoints for the total db.load.avg key
            ]
        },
        {
            "Key": {
                //Another key. This is db.load.avg broken down by CPU
                "Metric": "db.load.avg",
                "Dimensions": {
                    "db.wait_event.name": "CPU",
                    "db.wait_event.type": "CPU"
                }
            },
            "DataPoints": [
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 0.35
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 0.15
                },
                //... 60 datapoints for the CPU key
            ]
        },
        //... In total we have 8 key/datapoints entries, 1) total, 2-8) Top Wait Events
    ] //end of MetricList
} //end of response
```

在此响应中，`MetricList` 中有八个条目。有一个有关总 `db.load.avg` 的条目，还有七个条目，其中每个条目关于按前七个等待事件之一划分的 `db.load.avg`。与第一个示例不同，因为具有分组维度，所以必须具有一个用于每个指标分组的键。不能像在基本计数器指标使用案例中那样每个指标只有一个键。

## 检索首要 SQL 的数据库负载平均值
<a name="USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL"></a>

以下示例按前 10 个 SQL 语句对 `db.wait_events` 进行分组。有两个不同的 SQL 语句组：
+ `db.sql` – 完整的 SQL 语句，例如 `select * from customers where customer_id = 123`
+ `db.sql_tokenized` – 令牌化的 SQL 语句，例如 `select * from customers where customer_id = ?`

在分析数据库性能时，将仅参数不同的 SQL 语句视为一个逻辑项目很有用。因此，您在查询时可以使用 `db.sql_tokenized`。不过，尤其在您对说明计划感兴趣时，查看带参数的完整 SQL 语句和按 `db.sql` 分组查询有时会更有用。令牌化和完整 SQL 之间存在父-子关系，多个完整 SQL（子级）分组在同一令牌化 SQL（父级）下。

此示例中的命令类似于 [检索首要等待事件的数据库负载平均值](#USER_PerfInsights.API.Examples.DBLoadAverage) 中的命令。不过，query.json 文件具有以下内容。

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.sql_tokenized", "Limit": 10 }
    }
]
```

下面的示例使用了 `db.sql_tokenized`。

对于 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-29T00:00:00Z \
   --end-time   2018-10-30T00:00:00Z \
   --period-in-seconds 3600 \
   --metric-queries file://query.json
```

对于：Windows

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-29T00:00:00Z ^
   --end-time   2018-10-30T00:00:00Z  ^
   --period-in-seconds 3600 ^
   --metric-queries file://query.json
```

此示例查询 24 小时，以秒为单位的期间为一小时。

此示例指定指标 `db.load.avg` 和前七个等待事件的 `GroupBy`。有关此示例的有效值的详细信息，请参阅 *Performance Insights API 参考* 中的 [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)。

响应类似于以下内容。

```
{
    "AlignedStartTime": 1540771200.0,
    "AlignedEndTime": 1540857600.0,
    "Identifier": "db-XXX",

    "MetricList": [ //11 entries in the MetricList
        {
            "Key": { //First key is total
                "Metric": "db.load.avg"
            }
            "DataPoints": [ //Each DataPoints list has 24 per-hour Timestamps and a value
                {
                    "Value": 1.6964980544747081,
                    "Timestamp": 1540774800.0
                },
                //... 24 datapoints
            ]
        },
        {
            "Key": { //Next key is the top tokenized SQL  
                "Dimensions": {
                    "db.sql_tokenized.statement": "INSERT INTO authors (id,name,email) VALUES\n( nextval(?)  ,?,?)",
                    "db.sql_tokenized.db_id": "pi-2372568224",
                    "db.sql_tokenized.id": "AKIAIOSFODNN7EXAMPLE"
                },
                "Metric": "db.load.avg"
            },
            "DataPoints": [ //... 24 datapoints 
            ]
        },
        // In total 11 entries, 10 Keys of top tokenized SQL, 1 total key 
    ] //End of MetricList
} //End of response
```

此响应的 `MetricList` 中具有 11 个条目（1 个总计，10 个首要令牌化 SQL），其中每个条目具有 24 个每小时 `DataPoints`。

对于令牌化 SQL，每个维度列表中具有三个条目：
+ `db.sql_tokenized.statement` – 令牌化 SQL 语句。
+ `db.sql_tokenized.db_id ` – 用于引用 SQL 的本机数据库 ID，或 Performance Insights 为您生成的合成 ID（如果本机数据库 ID 不可用）。此示例返回 `pi-2372568224` 合成 ID。
+ `db.sql_tokenized.id`：Performance Insights 中的查询的 ID。

  在 AWS 管理控制台中，此 ID 称为支持 ID。它如此命名是因为 ID 是 AWS 支持服务可检查以帮助您解决数据库问题的数据。AWS 极其重视您的数据的安全性和隐私，几乎所有数据都使用您的 AWS KMS 密钥进行加密存储。因此，AWS 中的任何人都无法查看这些数据。在上一个示例中，`tokenized.statement` 和 `tokenized.db_id` 都进行了加密存储。如果您的数据库出现问题，AWS Support 可以通过引用支持 ID 来帮助您。

在查询时，在 `Group` 中指定 `GroupBy` 可能很方便。不过，要更精细地控制返回的数据，请指定维度列表。例如，如果所需的所有内容是 `db.sql_tokenized.statement`，则可将 `Dimensions` 属性添加到 query.json 文件中。

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": {
            "Group": "db.sql_tokenized",
            "Dimensions":["db.sql_tokenized.statement"],
            "Limit": 10
        }
    }
]
```

## 检索按 SQL 筛选的数据库负载平均值
<a name="USER_PerfInsights.API.Examples.DBLoadAverageFilterBySQL"></a>

![\[按 SQL 图表筛选。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/perf-insights-api-filter-chart.png)


上图显示选择了特定查询，并且首要平均活动会话堆栈区域线图限定为该查询。虽然查询仍针对前七个总体等待事件，已筛选响应的值。筛选条件使它只考虑与特定筛选条件匹配的会话。

此示例中的相应 API 查询类似于 [检索首要 SQL 的数据库负载平均值](#USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL) 中的命令。不过，query.json 文件具有以下内容。

```
[
 {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_event", "Limit": 5  }, 
        "Filter": { "db.sql_tokenized.id": "AKIAIOSFODNN7EXAMPLE" }
    }
]
```

对于 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

对于：Windows

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

响应类似于以下内容。

```
{
    "Identifier": "db-XXX", 
    "AlignedStartTime": 1556215200.0, 
    "MetricList": [
        {
            "Key": {
                "Metric": "db.load.avg"
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 1.4878117913832196
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 1.192823803967328
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "io", 
                    "db.wait_event.name": "wait/io/aurora_redo_log_flush"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 1.1360544217687074
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 1.058051341890315
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "io", 
                    "db.wait_event.name": "wait/io/table/sql/handler"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.16241496598639457
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.05163360560093349
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "synch", 
                    "db.wait_event.name": "wait/synch/mutex/innodb/aurora_lock_thread_slot_futex"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.11479591836734694
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.013127187864644107
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "CPU", 
                    "db.wait_event.name": "CPU"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.05215419501133787
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.05805134189031505
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "synch", 
                    "db.wait_event.name": "wait/synch/mutex/innodb/lock_wait_mutex"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.017573696145124718
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.002333722287047841
                }
            ]
        }
    ], 
    "AlignedEndTime": 1556222400.0
} //end of response
```

在此响应中，根据 query.json 文件中指定的令牌化 SQL AKIAIOSFODNN7EXAMPLE 的贡献筛选所有值。键还可能遵循与没有筛选条件的查询不同的顺序，因为前五个等待事件影响了筛选的 SQL。

## 检索 SQL 语句的全文
<a name="USER_PerfInsights.API.Examples.GetDimensionKeyDetails"></a>

以下示例检索数据库实例 `db-10BCD2EFGHIJ3KL4M5NO6PQRS5` 的 SQL 语句的全文。`--group` 是 `db.sql`，`--group-identifier` 是 `db.sql.id`。在此示例中，*my-sql-id* 表示通过调用 `pi get-resource-metrics` 或 `pi describe-dimension-keys` 检索的 SQL ID。

运行如下命令。

对于 Linux、macOS 或 Unix：

```
aws pi get-dimension-key-details \
   --service-type RDS \
   --identifier db-10BCD2EFGHIJ3KL4M5NO6PQRS5 \
   --group db.sql \
   --group-identifier my-sql-id \
   --requested-dimensions statement
```

对于：Windows

```
aws pi get-dimension-key-details ^
   --service-type RDS ^
   --identifier db-10BCD2EFGHIJ3KL4M5NO6PQRS5 ^
   --group db.sql ^
   --group-identifier my-sql-id ^
   --requested-dimensions statement
```

在此示例中，有维度详细信息。因此，Performance Insights 将检索 SQL 语句的全文，而不会将其截断。

```
{
    "Dimensions":[
    {
        "Value": "SELECT e.last_name, d.department_name FROM employees e, departments d WHERE e.department_id=d.department_id",
        "Dimension": "db.sql.statement",
        "Status": "AVAILABLE"
    },
    ...
    ]
}
```

## 创建一段时间的性能分析报告
<a name="USER_PerfInsights.API.Examples.CreatePerfAnalysisReport"></a>

以下示例为 `db-loadtest-0` 数据库创建了一个开始时间为 `1682969503`、结束时间为 `1682979503` 的性能分析报告。

```
aws pi create-performance-analysis-report \
        --service-type RDS \
        --identifier db-loadtest-0 \
        --start-time 1682969503 \
        --end-time 1682979503 \
        --region us-west-2
```

响应是报告的唯一标识符 `report-0234d3ed98e28fb17`。

```
{
   "AnalysisReportId": "report-0234d3ed98e28fb17"
}
```

## 检索性能分析报告
<a name="USER_PerfInsights.API.Examples.GetPerfAnalysisReport"></a>

以下示例检索 `report-0d99cc91c4422ee61` 报告的分析报告详细信息。

```
aws pi get-performance-analysis-report \
--service-type RDS \
--identifier db-loadtest-0 \
--analysis-report-id report-0d99cc91c4422ee61 \
--region us-west-2
```

响应提供报告状态、ID、时间详细信息和见解。

```
        {
    "AnalysisReport": {
        "Status": "Succeeded", 
        "ServiceType": "RDS", 
        "Identifier": "db-loadtest-0", 
        "StartTime": 1680583486.584, 
        "AnalysisReportId": "report-0d99cc91c4422ee61", 
        "EndTime": 1680587086.584, 
        "CreateTime": 1680587087.139, 
        "Insights": [
           ... (Condensed for space)
        ]
    }
}
```

## 列出数据库实例的所有性能分析报告
<a name="USER_PerfInsights.API.Examples.ListPerfAnalysisReports"></a>

以下示例列出了 `db-loadtest-0` 数据库的所有可用的性能分析报告。

```
aws pi list-performance-analysis-reports \
--service-type RDS \
--identifier db-loadtest-0 \
--region us-west-2
```

响应列出了所有带有报告 ID、状态和时间段详细信息的报告。

```
{
    "AnalysisReports": [
        {
            "Status": "Succeeded", 
            "EndTime": 1680587086.584, 
            "CreationTime": 1680587087.139, 
            "StartTime": 1680583486.584, 
            "AnalysisReportId": "report-0d99cc91c4422ee61"
        }, 
        {
            "Status": "Succeeded", 
            "EndTime": 1681491137.914, 
            "CreationTime": 1681491145.973, 
            "StartTime": 1681487537.914, 
            "AnalysisReportId": "report-002633115cc002233"
        }, 
        {
            "Status": "Succeeded", 
            "EndTime": 1681493499.849, 
            "CreationTime": 1681493507.762, 
            "StartTime": 1681489899.849, 
            "AnalysisReportId": "report-043b1e006b47246f9"
        }, 
        {
            "Status": "InProgress", 
            "EndTime": 1682979503.0, 
            "CreationTime": 1682979618.994, 
            "StartTime": 1682969503.0, 
            "AnalysisReportId": "report-01ad15f9b88bcbd56"
        }
    ]
}
```

## 删除性能分析报告
<a name="USER_PerfInsights.API.Examples.DeletePerfAnalysisReport"></a>

以下示例删除 `db-loadtest-0` 数据库的分析报告。

```
aws pi delete-performance-analysis-report \
--service-type RDS \
--identifier db-loadtest-0 \
--analysis-report-id report-0d99cc91c4422ee61 \
--region us-west-2
```

## 向性能分析报告中添加标签
<a name="USER_PerfInsights.API.Examples.TagPerfAnalysisReport"></a>

以下示例向 `report-01ad15f9b88bcbd56` 报告中添加了一个键为 `name`、值为 `test-tag` 的标签。

```
aws pi tag-resource \
--service-type RDS \
--resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \
--tags Key=name,Value=test-tag \
--region us-west-2
```

## 列出性能分析报告的所有标签
<a name="USER_PerfInsights.API.Examples.ListTagsPerfAnalysisReport"></a>

以下示例列出了 `report-01ad15f9b88bcbd56` 报告的所有标签。

```
aws pi list-tags-for-resource \
--service-type RDS \
--resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \
--region us-west-2
```

响应列出了添加到报告中的所有标签的值和键：

```
{
    "Tags": [
        {
            "Value": "test-tag", 
            "Key": "name"
        }
    ]
}
```

## 从性能分析报告中删除标签
<a name="USER_PerfInsights.API.Examples.UntagPerfAnalysisReport"></a>

以下示例从 `report-01ad15f9b88bcbd56` 报告中删除 `name` 标签。

```
aws pi untag-resource \
--service-type RDS \
--resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \
--tag-keys name \
--region us-west-2
```

删除标签后，调用 `list-tags-for-resource` API 不会列出此标签。

# 使用 AWS CloudTrail 记录 Performance Insights 调用
<a name="USER_PerfInsights.CloudTrail"></a>

Performance Insights 与 AWS CloudTrail 一起运行，后者是一项服务，在 Performance Insights 中提供由用户、角色或 AWS 服务所执行的操作的记录。CloudTrail 将 Performance Insights 的所有 API 调用作为事件捕获。此捕获包括的调用来自 Amazon RDS 控制台以及来自对性能详情 API 操作的代码调用。

如果您创建跟踪，可以使 CloudTrail 事件持续传送到 Amazon S3 存储桶（包括 Performance Insights 的事件）。如果您不配置跟踪，则仍可在 CloudTrail 控制台中的**事件历史记录**中查看最新事件。通过使用 CloudTrail 收集的数据，您可以确定特定的信息。此信息包括向 Performance Insights 发出的请求、从中发出请求的 IP 地址、何人发出的请求以及请求的发出时间。它还包括其他详细信息。

要了解有关 CloudTrail 的更多信息，请参阅 [AWS CloudTrail 用户指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。

## 在 CloudTrail 中使用性能详情信息
<a name="USER_PerfInsights.CloudTrail.service-name-info"></a>

在您创建 AWS 账户时，将在该账户上启用 CloudTrail。当 Performance Insights 中发生活动时，该活动将记录在 CloudTrail 事件中，并与其他 AWS 服务事件一同保存在 CloudTrail 控制台的 **Event history (事件历史记录)** 中。您可以在 AWS 账户中查看、搜索和下载最新事件。有关更多信息，请参阅 *AWS CloudTrail 用户指南*中的[使用 CloudTrail 事件历史记录查看事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

要持续记录 AWS 账户中的事件（包括 Performance Insights 的事件），请创建跟踪。通过*跟踪*，CloudTrail 可将日志文件传送至 Amazon S3 存储桶。预设情况下，在控制台中创建跟踪时，此跟踪应用于所有 AWS 区域。此跟踪记录来自 AWS 分区中的所有 AWS 区域的事件，并将日志文件传送至您指定的 Amazon S3 存储桶。此外，您可以配置其他 AWS 服务，进一步分析在 CloudTrail 日志中收集的事件数据并采取行动。有关更多信息，请参阅 *AWS CloudTrail 用户指南*中的以下主题：
+ [创建跟踪概述](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支持的服务和集成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [为 CloudTrail 配置 Amazon SNS 通知](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [从多个区域接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)和[从多个账户接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

所有 Performance Insights 操作均由 CloudTrail 进行日志记录，您可以在 [Performance Insights API 参考](https://docs.aws.amazon.com/performance-insights/latest/APIReference/Welcome.html)中找到这些操作的信息。例如，对 `DescribeDimensionKeys` 和 `GetResourceMetrics` 操作的调用将在 CloudTrail 日志文件中生成条目。

每个事件或日志条目都包含有关生成请求的人员信息。身份信息可帮助您确定以下内容：
+ 请求是使用根用户凭证还是 IAM 用户凭证发出的。
+ 请求是使用角色还是联合用户的临时安全凭证发出的。
+ 请求是否由其他 AWS 服务发出。

有关更多信息，请参阅 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## 性能详情日志文件条目
<a name="USER_PerfInsights.CloudTrail.service-name-entries"></a>

*跟踪*是一种配置，可用于将事件作为日志文件传送到您指定的 Amazon S3 存储桶。CloudTrail 日志文件包含一个或多个日志条目。*事件* 表示来自任何源的单个请求。每个事件包括有关所请求操作的信息、操作的日期和时间和请求参数等。CloudTrail 日志文件不是公用 API 调用的有序堆栈跟踪，因此它们不会按任何特定顺序显示。

下面的示例显示了一个 CloudTrail 日志条目，该条目说明了 `GetResourceMetrics` 操作。

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
         "principalId": "AKIAIOSFODNN7EXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/johndoe",
        "accountId": "123456789012",
        "accessKeyId": "AKIAI44QH8DHBEXAMPLE",
        "userName": "johndoe"
    },
    "eventTime": "2019-12-18T19:28:46Z",
    "eventSource": "pi.amazonaws.com",
    "eventName": "GetResourceMetrics",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "72.21.198.67",
    "userAgent": "aws-cli/1.16.240 Python/3.7.4 Darwin/18.7.0 botocore/1.12.230",
    "requestParameters": {
        "identifier": "db-YTDU5J5V66X7CXSCVDFD2V3SZM",
        "metricQueries": [
            {
                "metric": "os.cpuUtilization.user.avg"
            },
            {
                "metric": "os.cpuUtilization.idle.avg"
            }
        ],
        "startTime": "Dec 18, 2019 5:28:46 PM",
        "periodInSeconds": 60,
        "endTime": "Dec 18, 2019 7:28:46 PM",
        "serviceType": "RDS"
    },
    "responseElements": null,
    "requestID": "9ffbe15c-96b5-4fe6-bed9-9fccff1a0525",
    "eventID": "08908de0-2431-4e2e-ba7b-f5424f908433",
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

# 性能详情 API 和接口 VPC 端点（AWS PrivateLink）
<a name="pi-vpc-interface-endpoints"></a>

可以使用 AWS PrivateLink 在 VPC 和 Amazon RDS 性能详情之间创建私有连接。可以像在 VPC 中一样访问性能详情，而无需使用互联网网关、NAT 设备、VPN 连接或 Direct Connect 连接。VPC 中的实例不需要公有 IP 地址即可访问性能详情。

您可以通过创建由 AWS PrivateLink 提供支持的*接口端点*来建立此私有连接。我们将在您为接口端点启用的每个子网中创建一个端点网络接口。这些是请求者托管的网络接口，用作发往性能详情的流量的入口点。

有关更多信息，请参阅《AWS PrivateLink 指南》**中的[通过 AWS PrivateLink 访问 AWS 服务](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html)。

## 性能详情的注意事项
<a name="vpc-endpoint-considerations"></a>

在为性能详情设置接口端点之前，请首先查看《AWS PrivateLink 指南》**中的 [Considerations](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints)。

性能详情支持通过接口端点调用其所有 API 操作。

默认情况下，支持通过接口端点对性能详情进行完全访问。要控制通过接口端点流向性能详情的流量，请将安全组与端点网络接口关联。

## 可用性
<a name="rds-and-vpc-interface-endpoints-availability"></a>

性能详情 API 目前在支持性能详情的 AWS 区域中支持 VPC 端点。有关性能详情可用性的信息，请参阅[支持 Amazon RDS 中 Performance Insights 的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.PerformanceInsights.md)。

## 为性能详情创建接口端点
<a name="vpc-endpoint-create"></a>

可以使用 Amazon VPC 控制台或 AWS Command Line Interface（AWS CLI）为性能详情创建接口端点。有关更多信息，请参阅《AWS PrivateLink 指南》**中的[创建接口端点](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)。

使用以下服务名称为性能详情创建接口端点：

如果为接口端点启用私有 DNS，则可使用其默认区域 DNS 名称向性能详情发出 API 请求。例如 `pi.us-east-1.amazonaws.com`。

## 为性能详情 API 创建 VPC 端点策略
<a name="vpc-endpoint-policy"></a>

端点策略是一种 IAM 资源，您可以将其附加到接口端点。默认端点策略支持通过接口端点完全访问性能详情。要控制支持从 VPC 访问性能详情的权限，请将自定义端点策略附加到接口端点。

端点策略指定以下信息：
+ 可执行操作的主体（AWS 账户、IAM 用户和 IAM 角色）。
+ 可执行的操作。
+ 可对其执行操作的资源。

有关更多信息，请参阅《AWS PrivateLink 指南》**中的[使用端点策略控制对服务的访问权限](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。

**示例：性能详情操作的 VPC 端点策略**  
以下是自定义端点策略的示例。将此策略附加到接口端点时，该策略会向所有主体授予对所有资源执行所列出的性能详情操作的访问权限。

```
{
   "Statement":[
      {
         "Principal":"*",
         "Effect":"Allow",
         "Action":[
            "rds:CreatePerformanceAnalysisReport",
            "rds:DeletePerformanceAnalysisReport",
            "rds:GetPerformanceAnalysisReport"
         ],
         "Resource":"*"
      }
   ]
}
```

**示例：拒绝来自指定 AWS 账户的所有访问的 VPC 端点策略**  
以下 VPC 端点策略会拒绝 AWS 账户 `123456789012` 所有使用端点访问资源的权限。此策略允许来自其他账户的所有操作。

```
{
  "Statement": [
    {
      "Action": "*",
      "Effect": "Allow",
      "Resource": "*",
      "Principal": "*"
    },
    {
      "Action": "*",
      "Effect": "Deny",
      "Resource": "*",
      "Principal": { "AWS": [ "123456789012" ] }
     }
   ]
}
```

## 性能详情的 IP 寻址
<a name="pi-ip-addressing"></a>

IP 地址使 VPC 中的资源能够相互通信以及与 Internet 上的资源进行通信。性能详情同时支持 IPv4 和 IPv6 寻址协议。默认情况下，性能详情和 Amazon VPC 使用 IPv4 寻址协议。您无法关闭这种行为。创建 VPC 时，请确保指定 IPv4 CIDR 块 (一系列私有 IPv4 地址)。

可以选择将 IPv6 CIDR 块分配给 VPC 和子网，并将来自该块的 IPv6 地址分配给子网中的 RDS 资源。对 IPv6 协议的支持扩展了支持的 IP 地址数量。通过使用 IPv6 协议，您可以确保有足够的可用地址来应对 Internet 的未来发展。新的和现有 RDS 资源可以在 VPC 内使用 IPv4 和 IPv6 地址。在应用程序不同部分使用的两个协议之间配置、保护和转换网络流量可能会产生运营开销。您可以对 Amazon RDS 资源的 IPv6 协议进行标准化，以简化网络配置。有关服务端点和配额的更多信息，请参阅 [Amazon Relational Database Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/rds-service.html)。

有关 Amazon RDS IP 寻址的更多信息，请参阅 [Amazon RDS IP 寻址](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.IP_addressing)。

# 使用适用于 Amazon RDS 的 Amazon DevOps Guru 分析性能异常
<a name="devops-guru-for-rds"></a>

Amazon DevOps Guru 是一项完全托管式运营服务，可帮助开发人员和运营商提高应用程序的性能和可用性。DevOps Guru 卸下了与识别运营问题相关的任务，以便您可以快速实施改进应用程序的建议。有关更多信息，请参阅《Amazon DevOps Guru 用户指南》**中的[什么是 Amazon DevOps Guru？](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html)。

DevOps Guru 可检测、分析所有 Amazon RDS 数据库引擎的现有操作问题并提出建议。DevOps Guru for RDS 通过将机器学习应用于 RDS for PostgreSQL 数据库的性能详情指标，扩展了此功能。这些监控功能使得适用于 RDS 的 DevOps Guru 可以检测和诊断性能瓶颈，并建议具体的纠正措施。DevOps Guru for RDS 还可以在您的 RDS for PostgreSQL 数据库中出现问题状况之前检测出这些状况。

现在，您可以在 RDS 控制台中查看这些建议。有关更多信息，请参阅 [来自 Amazon RDS 的建议](monitoring-recommendations.md)。

以下视频是关于 DevOps Guru for RDS 的概览。

[![AWS Videos](http://img.youtube.com/vi/N3NNYgzYUDA/0.jpg)](http://www.youtube.com/watch?v=N3NNYgzYUDA)


有关此主题的深入分析，请参阅 [Amazon DevOps Guru for RDS 深入剖析](https://aws.amazon.com/blogs/database/amazon-devops-guru-for-rds-under-the-hood/)。

**Topics**
+ [DevOps Guru for RDS 的优势](#devops-guru-for-rds.benefits)
+ [适用于 RDS 的 DevOps Guru 的工作原理](#devops-guru-for-rds.how-it-works)
+ [设置适用于 RDS 的 DevOps Guru](#devops-guru-for-rds.configuring)

## DevOps Guru for RDS 的优势
<a name="devops-guru-for-rds.benefits"></a>

如果是您负责 RDS for PostgreSQL 数据库，则您可能不知道正在发生影响该数据库的事件或回归。当您了解这个问题时，您可能不知道为什么会发生这个问题，也不知道该怎么处理它。您可以遵循 DevOps Guru for RDS 的建议，而不是向数据库管理员 (DBA) 寻求帮助或依赖第三方工具。

从 DevOps Guru for RDS 的详细分析中，您可以获得以下优势：

**快速诊断**  
DevOps Guru for RDS 会持续监控和分析数据库遥测。性能详情、增强监控和 Amazon CloudWatch 会收集数据库实例的遥测数据。DevOps Guru for RDS 会使用统计和机器学习技术来挖掘这些数据并检测异常情况。要了解有关遥测数据的更多信息，请参阅《Amazon RDS 用户指南》**中的[在 Amazon RDS 上使用性能详情监控数据库负载](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html)和[使用增强监控来监控操作系统指标](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html)。

**快速解决方案**  
每个异常情况都会识别性能问题，并建议调查或纠正措施的途径。例如，DevOps Guru for RDS 可能会建议您调查特定的等待事件。或者，它可能建议您优化应用程序池设置以限制数据库连接的数量。根据这些建议，您可以比手动进行故障排除更快地解决性能问题。

**主动见解**  
DevOps Guru for RDS 使用资源中的指标来检测潜在的问题行为，以免其成为更大的问题。例如，此服务可以检测数据库何时使用越来越多的磁盘临时表，这可能会开始影响性能。然后，DevOps Guru 会提供建议以帮助解决问题，从而防止问题变成更大的问题。

**深入了解 Amazon 工程师和机器学习**  
为了检测性能问题并帮助您解决瓶颈，DevOps Guru for RDS 依赖于机器学习（ML）和高级数据公式。Amazon 数据库工程师为 DevOps Guru for RDS 结果的开发做出了贡献，该服务封装了多年来管理成千上万个数据库的经验。通过利用这些集体知识，适用于 RDS 的 DevOps Guru 可以教您最佳实践。

## 适用于 RDS 的 DevOps Guru 的工作原理
<a name="devops-guru-for-rds.how-it-works"></a>

DevOps Guru for RDS 从 Amazon RDS 性能详情中收集有关 RDS for PostgreSQL 数据库的数据。最重要的指标是 `DBLoad`。适用于 RDS 的 DevOps Guru 使用性能详情指标，使用机器学习对其进行分析，并将洞察发布到控制面板。

*洞察*是 DevOps Guru 检测到的相关异常的集合。

在 DevOps Guru for RDS 中，*异常*是一种与 RDS for PostgreSQL 数据库的正常性能有所偏差的模式。

### 主动见解
<a name="devops-guru-for-rds.how-it-works.insights.proactive"></a>

*主动见解*可以让您在问题发生之前了解问题行为。它包含异常情况以及建议和相关指标，可以帮助您解决 RDS for PostgreSQL 数据库中的问题，以免问题变得更严重。这些见解发布在 DevOps Guru 控制面板上。

例如，DevOps Guru 可能会检测到 RDS for PostgreSQL 数据库正在创建许多磁盘上的临时表。如果不加以解决，这种趋势可能会导致性能问题。每项主动见解都包含有关纠正行为的建议以及指向[使用 Amazon DevOps Guru 主动见解优化 RDS for PostgreSQL](PostgreSQL.Tuning_proactive_insights.md)中相关主题的链接。有关更多信息，请参阅《Amazon DevOps Guru 用户指南》**中的[在 DevOps Guru 中使用见解](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html)。

### 被动见解
<a name="devops-guru-for-rds.how-it-works.insights.reactive"></a>

*被动见解*可在异常行为发生时识别此类行为。如果 DevOps Guru for RDS 发现您的 RDS for PostgreSQL 数据库实例中的性能问题，它会在 DevOps Guru 控制面板中发布被动见解。有关更多信息，请参阅《Amazon DevOps Guru 用户指南》**中的[在 DevOps Guru 中使用见解](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html)。

#### 因果异常
<a name="devops-guru-for-rds.how-it-works.anomalies.causal"></a>

*因果异常*是被动见解内的一项顶级异常。**数据库加载（数据库加载）**是适用于 RDS 的 DevOps Guru 的因果异常。

异常情况通过分配严重性级别 **High**（高）、**Medium**（中）或 **Low**（低）来衡量性能影响。要了解详情，请参阅《*Amazon DevOps Guru 用户指南*》中的[适用于 RDS 的 DevOps Guru 的关键概念](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-rds.overview.definitions.html)。

如果 DevOps Guru 检测到数据库实例上的当前异常情况，则会在 RDS 控制台的 **Databases**（数据库）页面中收到提示。控制台还会提示您注意过去 24 小时内发生的异常。要从 RDS 控制台转到异常页面，请选择警报消息中的链接。RDS 控制台还会在 RDS for PostgreSQL 数据库实例的页面中向您发出提示。

#### 上下文异常
<a name="devops-guru-for-rds.how-it-works.anomalies.contextual"></a>

*上下文异常*是**数据库负载（DB 负载）**内与被动见解相关的一项调查结果。每个上下文异常都描述了需要调查的特定 RDS for PostgreSQL 性能问题。例如，适用于 RDS 的 DevOps Guru 可能会建议您考虑增加 CPU 容量或调查导致数据库负载的等待事件。

**重要**  
我们建议您在修改生产实例之前在测试实例上测试所有更改。通过这种方式，您可以了解更改的影响。

要了解详情，请参阅《Amazon DevOps Guru 用户指南》**中的[分析 Amazon RDS 中的异常](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-rds.analyzing.html)。

## 设置适用于 RDS 的 DevOps Guru
<a name="devops-guru-for-rds.configuring"></a>

要允许 DevOps Guru for Amazon RDS 发布 RDS for PostgreSQL 数据库的见解，请完成以下任务。

**Topics**
+ [配置适用于 RDS 的 DevOps Guru 的 IAM 访问策略](#devops-guru-for-rds.configuring.access)
+ [为您的 RDS for PostgreSQL 数据库实例开启性能详情](#devops-guru-for-rds.configuring.performance-insights)
+ [打开 DevOps Guru 并指定资源覆盖范围](#devops-guru-for-rds.configuring.coverage)

### 配置适用于 RDS 的 DevOps Guru 的 IAM 访问策略
<a name="devops-guru-for-rds.configuring.access"></a>

要在 RDS 控制台中查看来自 DevOps Guru 的提示，您的 AWS Identity and Access Management (IAM) 用户或角色必须具有以下任一策略：
+ AWS 托管策略 `AmazonDevOpsGuruConsoleFullAccess`
+ AWS 托管式策略 `AmazonDevOpsGuruConsoleReadOnlyAccess` 以及以下任一策略：
  + AWS 托管策略 `AmazonRDSFullAccess`
  + 客户托管策略包括 `pi:GetResourceMetrics` 和 `pi:DescribeDimensionKeys`

有关更多信息，请参阅 [为 Performance Insights 配置访问策略](USER_PerfInsights.access-control.md)。

### 为您的 RDS for PostgreSQL 数据库实例开启性能详情
<a name="devops-guru-for-rds.configuring.performance-insights"></a>

适用于 RDS 的 DevOps Guru 依靠性能详情来获取其数据。如果没有性能详情，DevOps Guru 会发布异常情况，但不包括详细的分析和建议。

在创建或修改 RDS for PostgreSQL 数据库实例时，可以开启性能详情。有关更多信息，请参阅 [为 Amazon RDS 打开和关闭性能详情](USER_PerfInsights.Enabling.md)。

### 打开 DevOps Guru 并指定资源覆盖范围
<a name="devops-guru-for-rds.configuring.coverage"></a>

您可以开启 DevOps Guru，以让它通过以下任一方式监控您的 RDS for PostgreSQL 数据库。

**Topics**
+ [在 RDS 控制台中开启 DevOps Guru](#devops-guru-for-rds.configuring.coverage.rds-console)
+ [在 DevOps Guru 控制台中添加 RDS for PostgreSQL 资源](#devops-guru-for-rds.configuring.coverage.guru-console)
+ [使用 CloudFormation 添加 RDS for PostgreSQL 资源](#devops-guru-for-rds.configuring.coverage.cfn)

#### 在 RDS 控制台中开启 DevOps Guru
<a name="devops-guru-for-rds.configuring.coverage.rds-console"></a>

您可以在 Amazon RDS 控制台中通过多个途径来开启 DevOps Guru。

**Topics**
+ [创建 RDS for PostgreSQL 数据库时开启 DevOps Guru](#devops-guru-for-rds.configuring.coverage.rds-console.create)
+ [从通知横幅开启 DevOps Guru](#devops-guru-for-rds.configuring.coverage.rds-console.existing)
+ [响应开启 DevOps Guru 时的权限错误](#devops-guru-for-rds.configuring.coverage.rds-console.error)

##### 创建 RDS for PostgreSQL 数据库时开启 DevOps Guru
<a name="devops-guru-for-rds.configuring.coverage.rds-console.create"></a>

创建工作流包括一个设置，该设置可为数据库开启 DevOps Guru 覆盖范围。原定设置情况下，当您选择 **Production**（生产）模板时，此设置处于开启状态。

**创建 RDS for PostgreSQL 数据库时开启 DevOps Guru**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 按[创建数据库实例](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)中的步骤操作，直至（但不包括）您选择监控设置的步骤。

1. 在 **Monitoring**（监控）中，选择 **Turn on Performance Insights**（开启性能详情）。为让 DevOps Guru for RDS 提供对性能异常情况的详细分析，必须开启性能详情。

1. 选择 **Turn on DevOps Guru**（开启 DevOps Guru）。  
![\[创建数据库实例时开启 DevOps Guru\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/devops-guru-enable-create.png)

1. 为数据库创建一个标签，以便 DevOps Guru 可以对其进行监控。执行以下操作：
   + 在 **Tag key**（标签键）的文本字段中，输入以 **Devops-Guru-** 开头的名称。
   + 在 **Tag key**（标签键）的文本字段中，输入任意值。例如，如果输入 **rds-database-1** 作为 RDS for PostgreSQL 数据库的名称，还可以输入 **rds-database-1** 作为标签值。

   有关标签的更多信息，请参阅《Amazon DevOps Guru 用户指南》**中的“[使用标签识别 DevOps Guru 应用程序中的资源](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-resource-tags.html)”。

1. 完成[创建数据库实例](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating) 中的其余步骤。

##### 从通知横幅开启 DevOps Guru
<a name="devops-guru-for-rds.configuring.coverage.rds-console.existing"></a>

如果 DevOps Guru 未涵盖您的资源，Amazon RDS 会在以下位置通过横幅通知您：
+ 数据库集群实例的 **Monitoring**（监控）选项卡
+ 性能详情控制面板

![\[DevOps Guru 横幅\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/devops-guru-enable-banner.png)


**为 RDS for PostgreSQL 数据库开启 DevOps Guru**

1. 在横幅中，选择 **Turn on DevOps Guru for RDS**（开启适用于 RDS 的 DevOps Guru）。

1. 输入标签键名称和值。有关标签的更多信息，请参阅《Amazon DevOps Guru 用户指南》**中的“[使用标签识别 DevOps Guru 应用程序中的资源](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-resource-tags.html)”。  
![\[在 RDS 控制台中开启 DevOps Guru\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/devops-guru-turn-on.png)

1. 选择 **Turn on DevOps Guru**（开启 DevOps Guru）。

##### 响应开启 DevOps Guru 时的权限错误
<a name="devops-guru-for-rds.configuring.coverage.rds-console.error"></a>

如果您在创建数据库时从 RDS 控制台开启 DevOps Guru，RDS 可能会显示以下关于缺少权限的横幅。

![\[指明缺少权限错误的横幅\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/devops-guru-permissions-error.png)


**响应权限错误**

1. 向您的 IAM 用户或角色授予用户托管式角色 `AmazonDevOpsGuruConsoleFullAccess`。有关更多信息，请参阅 [配置适用于 RDS 的 DevOps Guru 的 IAM 访问策略](#devops-guru-for-rds.configuring.access)。

1. 打开 RDS 控制台。

1. 在导航窗格中，选择**性能详情**。

1. 在刚创建的集群中选择一个数据库实例。

1. 选择此开关以开启 **DevOps Guru for RDS**。  
![\[选择此开关以开启 DevOps Guru for RDS\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/devops-guru-pi-toggle-off.png)

1. 选择标签值。有关更多信息，请参阅《Amazon DevOps Guru 用户指南》**中的“[使用标签识别 DevOps Guru 应用程序中的资源](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-resource-tags.html)”。  
![\[在 Amazon RDS 控制台中开启 DevOps Guru\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/devops-guru-turn-on.png)

1. 选择 **Turn on DevOps Guru**（开启 DevOps Guru）。

#### 在 DevOps Guru 控制台中添加 RDS for PostgreSQL 资源
<a name="devops-guru-for-rds.configuring.coverage.guru-console"></a>

您可以在 DevOps Guru 控制台上指定 DevOps Guru 资源覆盖范围。按照《Amazon DevOps Guru 用户指南》**中的[指定 DevOps Guru 资源覆盖范围](https://docs.aws.amazon.com/devops-guru/latest/userguide/choose-coverage.html)中描述的步骤操作。编辑所分析的资源时，请选择以下选项之一：
+ 选择**所有账户资源**以分析所有受支持的资源，包括您的 AWS 账户和区域中的 RDS for PostgreSQL 数据库。
+ 选择 **CloudFormation 堆栈**来分析您选择的堆栈中的 RDS for PostgreSQL 数据库。有关更多信息，请参阅《Amazon DevOps Guru 用户指南》**中的[使用 AWS CloudFormation 堆栈识别 DevOps Guru 应用程序中的资源](https://docs.aws.amazon.com//devops-guru/latest/userguide/working-with-cfn-stacks.html)。
+ 选择**标签**来分析您已标记的 RDS for PostgreSQL 数据库。有关更多信息，请参阅《Amazon DevOps Guru 用户指南》**中的[使用标签识别 DevOps Guru 应用程序中的资源](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-resource-tags.html)。

有关更多信息，请参阅《Amazon DevOps Guru 用户指南》**中的[启用 DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/getting-started-enable-service.html)。

#### 使用 CloudFormation 添加 RDS for PostgreSQL 资源
<a name="devops-guru-for-rds.configuring.coverage.cfn"></a>

可以使用标签向您的 CloudFormation 模板添加 RDS for PostgreSQL 资源的覆盖范围。以下过程假设您具有同时适用于 RDS for PostgreSQL 数据库实例和 DevOps Guru 堆栈的 CloudFormation 模板。

**使用 CloudFormation 标签指定 RDS for PostgreSQL 数据库实例**

1. 在数据库实例的 CloudFormation 模板中，使用键/值对定义标签。

   以下示例将 RDS for PostgreSQL 数据库实例的值 `my-db-instance1` 分配给 `Devops-guru-cfn-default`。

   ```
   MyDBInstance1:
     Type: "AWS::RDS::DBInstance"
     Properties:
       DBInstanceIdentifier: my-db-instance1
       Tags:
         - Key: Devops-guru-cfn-default
           Value: devopsguru-my-db-instance1
   ```

1. 在 DevOps Guru 堆栈的 CloudFormation 模板中，在资源收集筛选条件中指定相同的标签。

   以下示例将 DevOps Guru 配置为使用标签值 `my-db-instance1` 为资源提供覆盖范围。

   ```
   DevOpsGuruResourceCollection:
     Type: AWS::DevOpsGuru::ResourceCollection
     Properties:
       ResourceCollectionFilter:
         Tags:
           - AppBoundaryKey: "Devops-guru-cfn-default"
             TagValues:
             - "devopsguru-my-db-instance1"
   ```

   以下示例涵盖了应用程序边界 `Devops-guru-cfn-default` 内的所有资源。

   ```
   DevOpsGuruResourceCollection:
     Type: AWS::DevOpsGuru::ResourceCollection
     Properties:
       ResourceCollectionFilter:
         Tags:
           - AppBoundaryKey: "Devops-guru-cfn-default"
             TagValues:
             - "*"
   ```

有关更多信息，请参阅《CloudFormation 用户指南》**中的 [AWS::DevOpsGuru::ResourceCollection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-resourcecollection.html) 和 [AWS::RDS::DBInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html)。

# 使用增强监控来监控操作系统指标
<a name="USER_Monitoring.OS"></a>

利用增强监测功能，您可以实时监控数据库实例的操作系统。若您想了解不同进程或线程对 CPU 的使用差异，增强监测指标非常有用。

**Topics**
+ [增强监测概述](#USER_Monitoring.OS.overview)
+ [设置和启用增强监控](USER_Monitoring.OS.Enabling.md)
+ [在 RDS 控制台中查看操作系统指标](USER_Monitoring.OS.Viewing.md)
+ [使用 CloudWatch Logs 查看操作系统指标](USER_Monitoring.OS.CloudWatchLogs.md)

## 增强监测概述
<a name="USER_Monitoring.OS.overview"></a>

Amazon RDS 为数据库实例运行的操作系统 (OS) 实时提供指标。您可以在控制台上查看 RDS 数据库实例的所有系统指标和过程信息。您可以管理要为每个实例监控哪些指标，并根据您的要求自定义控制面板。有关增强监控指标的说明，请参阅 [增强监控中的操作系统指标](USER_Monitoring-Available-OS-Metrics.md)。

RDS 将增强监测中的指标传输到您的 Amazon CloudWatch Logs 账户。您可以在 CloudWatch Logs 中创建指标筛选条件，并在 CloudWatch 控制面板上显示图表。此外，您可以在选择的监控系统中通过 Amazon CloudWatch Logs 使用增强监测 JSON 输出。有关更多信息，请参阅 Amazon RDS 常见问题中的[增强监测](https://aws.amazon.com/rds/faqs/#Enhanced_Monitoring)。

**Topics**
+ [增强监测可用性](#USER_Monitoring.OS.Availability)
+ [CloudWatch 与增强监控指标的区别](#USER_Monitoring.OS.CloudWatchComparison)
+ [保留增强监测指标](#USER_Monitoring.OS.retention)
+ [增强监测的成本](#USER_Monitoring.OS.cost)

### 增强监测可用性
<a name="USER_Monitoring.OS.Availability"></a>

增强监测对以下数据库引擎可用：
+ Db2
+ MariaDB
+ Microsoft SQL Server
+ MySQL
+ Oracle
+ PostgreSQL

### CloudWatch 与增强监控指标的区别
<a name="USER_Monitoring.OS.CloudWatchComparison"></a>

*虚管理程序*创建并运行虚拟机 (VM)。借助管理程序，实例可以通过虚拟共享内存和 CPU 支持多个来宾虚拟机。CloudWatch 从数据库实例管理程序收集关于 CPU 使用率的指标。而增强监测则从数据库实例上的代理收集这一指标。

您可能会发现 CloudWatch 和增强监测测量值之间存在差异，因为管理程序层执行的工作较少。如果数据库实例使用较小的实例类，差异可能会更大。在这种情况下，单个物理实例上的管理程序层可能会管理更多的虚拟机 (VM)。

有关增强监控指标的说明，请参阅 [增强监控中的操作系统指标](USER_Monitoring-Available-OS-Metrics.md)。有关 CloudWatch 指标的更多信息，请参阅**[《Amazon CloudWatch 用户指南》](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)。

### 保留增强监测指标
<a name="USER_Monitoring.OS.retention"></a>

默认情况下，增强监测指标可在 CloudWatch Logs 中存储达 30 天。此保留期与典型的 CloudWatch 指标不同。

要修改指标存储在 CloudWatch Logs 中的时间量，请在 CloudWatch 控制台中更改 `RDSOSMetrics` 日志组的保留期。有关更多信息，请参阅 *Amazon CloudWatch Logs User Guide* 中的[更改 CloudWatch Logs 中的日志数据保留期](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention)。

### 增强监测的成本
<a name="USER_Monitoring.OS.cost"></a>

增强监测指标存储在 CloudWatch Logs 中，而不是存储在 CloudWatch 指标中。增强监测的成本取决于以下因素：
+ 仅当您超过 Amazon CloudWatch Logs 提供的数据传输和存储量时，您才需要为增强监控付费。收费是根据 CloudWatch Logs 数据传输和存储费率计算的。
+ RDS 实例传输的信息量与为增强型监测功能定义的精细程度成正比。监控间隔越短，操作系统指标报告频率越高，监控成本也就越高。要管理成本，请为账户中的不同实例设置不同的精细度。
+ 增强监测的使用成本适用于启用了增强监测的每个数据库实例。监控大量数据库实例的成本要高于监控少量数据库实例。
+ 数据库实例支持的工作负载计算越密集，要报告的操作系统进程活动就越多，增强监测的成本也越高。

有关定价的更多信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

# 设置和启用增强监控
<a name="USER_Monitoring.OS.Enabling"></a>

要使用增强监控，您必须创建 IAM 角色，然后启用增强监控。

**Topics**
+ [为增强监控创建 IAM 角色](#USER_Monitoring.OS.Enabling.Prerequisites)
+ [打开和关闭增强监控](#USER_Monitoring.OS.Enabling.Procedure)
+ [防范混淆代理问题](#USER_Monitoring.OS.confused-deputy)

## 为增强监控创建 IAM 角色
<a name="USER_Monitoring.OS.Enabling.Prerequisites"></a>

增强监测需要代表您执行操作的权限来向 CloudWatch Logs发送操作系统指标信息。您使用 AWS Identity and Access Management（IAM）角色授予增强监控权限。您可以在启用增强监控时创建此角色，也可以事先创建该角色。

**Topics**
+ [在启用增强监控时创建 IAM 角色](#USER_Monitoring.OS.Enabling.Prerequisites.creating-role-automatically)
+ [在启用增强监控之前创建 IAM 角色](#USER_Monitoring.OS.Enabling.Prerequisites.creating-role-manually)

### 在启用增强监控时创建 IAM 角色
<a name="USER_Monitoring.OS.Enabling.Prerequisites.creating-role-automatically"></a>

在 RDS 控制台中启用增强监控后，Amazon RDS 可以为您创建所需的 IAM 角色。该角色命名为 `rds-monitoring-role`。RDS 将此角色用于指定的数据库实例、只读副本或多可用区数据库集群。

**在启用增强监控时创建 IAM 角色的方法**

1. 按[打开和关闭增强监控](#USER_Monitoring.OS.Enabling.Procedure)中的步骤操作。

1. 在选择角色的步骤中，将**监视角色**设置为**默认值**。

### 在启用增强监控之前创建 IAM 角色
<a name="USER_Monitoring.OS.Enabling.Prerequisites.creating-role-manually"></a>

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

必须向启用增强监控的用户授予 `PassRole` 权限。有关更多信息，请参阅 *IAM 用户指南*的[授予向 AWS 服务传递角色的用户权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)中的示例 2。<a name="USER_Monitoring.OS.IAMRole"></a>

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

1. 通过以下网址打开 [IAM 控制台](https://console.aws.amazon.com/iam/home?#home)：[https://console.aws.amazon.com](https://console.aws.amazon.com/)。

1. 在导航窗格中，选择 **Roles (角色)**。

1. 选择 **Create role (创建角色)**。

1. 选择 **AWS service**（Amazon Web Services 服务）选项卡，然后从服务列表中选择 **RDS**。

1. 选择 **RDS - Enhanced Monitoring**（RDS - 增强监测），然后选择 **Next**（下一步）。

1. 确保 **Permissions policies**（权限策略）显示 **AmazonRDSEnhancedMonitoringRole**，然后选择 **Next**（下一步）。

1. 对于**角色名称**，请为您的角色输入一个名称。例如，输入 **emaccess**。

   您角色的可信实体是 AWS 服务 **monitoring.rds.amazonaws.com**。

1. 选择 **Create role (创建角色)**。

## 打开和关闭增强监控
<a name="USER_Monitoring.OS.Enabling.Procedure"></a>

可以使用 AWS 管理控制台、AWS CLI 或 RDS API 管理增强监控。可以为每个数据库实例上的指标收集设置不同的粒度。

### 控制台
<a name="USER_Monitoring.OS.Enabling.Procedure.Console"></a>

您可以在创建数据库实例、多可用区数据库集群或只读副本，或者在修改数据库实例或多可用区数据库集群时打开增强监控。如果修改数据库实例以开启增强监控，则不需要重启数据库实例，更改也会生效。

在 **Databases**（数据库）页面执行以下某种操作时，您可以在 RDS 控制台中打开增强监控：
+ **创建数据库实例或多可用区数据库集群** - 选择 **Create database**（创建数据库）。
+ **Create a read replica**（创建只读副本）：选择 **Actions**（操作），然后选择 **Create read replica**（创建只读副本）。
+ **修改数据库实例或多可用区数据库集群**：选择**修改**。

**在 RDS 控制台中打开或关闭增强监控**

1. 滚动到 **Additional configuration**（其他配置）。

1. 在**监控**中，为数据库实例或只读副本选择**启用增强监控**。取消选择该选项可。

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

1. 将**粒度**属性设置成两次为数据库实例或只读副本收集指标之间的间隔，以秒为单位。**Granularity** 属性可以设置为以下值之一：`1`、`5`、`10`、`15`、`30` 或 `60`。

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

### AWS CLI
<a name="USER_Monitoring.OS.Enabling.Procedure.CLI"></a>

要使用 AWS CLI 打开增强监控，请在以下命令中将 `--monitoring-interval` 选项设置为 `0` 以外的值，并将 `--monitoring-role-arn` 选项设置为您在 [为增强监控创建 IAM 角色](#USER_Monitoring.OS.Enabling.Prerequisites) 中创建的角色。
+ [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html)
+ [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)
+ [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)（多可用区数据库集群）
+ [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)（多可用区数据库集群）

`--monitoring-interval` 选项指定收集增强监控指标的时间点之间的间隔，以秒为单位。选项的有效值为 `0`、`1`、`5`、`10`、`15`、`30`、和 `60`。

要使用 AWS CLI 关闭增强监控，请在这些命令中将 `--monitoring-interval` 选项设置为 `0`。

**Example**  
以下示例将打开数据库实例的增强监控：  
对于 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --monitoring-interval 30 \
    --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess
```
对于：Windows  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --monitoring-interval 30 ^
    --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess
```

**Example**  
以下示例将打开多可用区数据库集群的增强监控：  
对于 Linux、macOS 或 Unix：  

```
aws rds modify-db-cluster \
    --db-cluster-identifier mydbcluster \
    --monitoring-interval 30 \
    --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess
```
对于：Windows  

```
aws rds modify-db-cluster ^
    --db-cluster-identifier mydbcluster ^
    --monitoring-interval 30 ^
    --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess
```

### RDS API
<a name="USER_Monitoring.OS.Enabling.Procedure.API"></a>

要使用 RDS API 打开增强监控，请将 `MonitoringInterval` 参数设置为 `0` 以外的值，并将 `MonitoringRoleArn` 参数设置为您在 [为增强监控创建 IAM 角色](#USER_Monitoring.OS.Enabling.Prerequisites) 中创建的角色。在以下操作中设置这些参数：
+ [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)
+ [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html)
+ [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)（多可用区数据库集群）
+ [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)（多可用区数据库集群）

`MonitoringInterval` 参数指定收集增强监控指标的时间点之间的间隔，以秒为单位。有效值为 `0`、`1`、`5`、`10`、`15`、`30` 和 `60`。

要使用 RDS API 关闭增强监控，请将 `MonitoringInterval` 设置为 `0`。

## 防范混淆代理问题
<a name="USER_Monitoring.OS.confused-deputy"></a>

混淆代理问题是一个安全性问题，即不具有某操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。在 AWS 中，跨服务模拟可能会导致混淆代理问题。一个服务（*呼叫服务*）调用另一项服务（*所谓的服务*）时，可能会发生跨服务模拟。可以操纵调用服务，使用其权限以在其他情况下该服务不应有访问权限的方式对另一个客户的资源进行操作。为防止这种情况，AWS 提供可帮助您保护所有服务的数据的工具，而这些服务中的服务主体有权限访问账户中的资源。有关更多信息，请参阅[混淆代理问题](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)。

要限制 Amazon RDS 授予另一项服务对资源的访问权限，建议在增强监控角色的信任策略中使用 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键。如果使用两个全局条件上下文键，则这两个键必须使用相同的账户 ID。

防范混淆代理问题最有效的方法是使用 `aws:SourceArn` 全局条件上下文键和资源的完整 ARN。对于 Amazon RDS，请将 `aws:SourceArn` 设置为 `arn:aws:rds:Region:my-account-id:db:dbname`。

以下示例在信任策略中使用 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键来防范混淆代理问题。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "monitoring.rds.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringLike": {
          "aws:SourceArn": "arn:aws:rds:Region:my-123456789012:db:dbname"
        },
        "StringEquals": {
          "aws:SourceAccount": "my-123456789012"
        }
      }
    }
  ]
}
```

------

# 在 RDS 控制台中查看操作系统指标
<a name="USER_Monitoring.OS.Viewing"></a>

您可以在 RDS 控制台中查看增强监测报告的操作系统指标，方法是为**监测**选择 **Enhanced monitoring (增强监测)**。

以下示例显示“Enhanced Monitoring（增强监控）”页面。有关增强监控指标的说明，请参阅 [增强监控中的操作系统指标](USER_Monitoring-Available-OS-Metrics.md)。

![\[“Dashboard (控制面板)”视图\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/metrics1.png)


一些数据库实例为数据库实例的数据存储卷使用多个磁盘。在这些数据库实例上，**Physical Devices (物理设备)** 图表显示每一个磁盘的指标。例如，下图显示四个磁盘的指标。

![\[具有多个磁盘的图表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/enhanced-monitoring-multiple-disks.png)


**注意**  
目前，**Physical Devices (物理设备)** 图表不可用于 Microsoft SQL Server 数据库实例。

在查看聚合的**文件系统**图表时，**rdsdbdata\$1** 设备与 `rdsfilesys/rdsdbdata*` 文件系统相关，后者存储了所有数据库文件和日志。**rootfilesys** 设备与 `/` 文件系统（又称为根）相关，后者存储了与操作系统相关的文件。使用附加存储卷时，请查看 `rdsdbdata2`、`rdsdbdata3` 和 `rdsdbdata4` 卷指标以了解卷特定的信息。

当您查看聚合的**磁盘 I/O** 图表时，**rdsdbdata** 设备与主 `/rdsdbdata` 存储卷相关。使用附加存储卷时，请查看 `rdsdbdata2`、`rdsdbdata3` 和 `rdsdbdata4` 卷指标以了解卷特定的信息。filesystem 设备与文件系统（又称为根）相关，后者存储了与操作系统相关的文件。

**rdsdev** 设备名称已弃用。**rdsdev** 设备仅与主 `/rdsdbdata` 存储卷相关，不包括来自附加存储卷的指标。

![\[显示文件系统使用情况的图表\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/enhanced-monitoring-filesystem.png)


如果数据库实例是多可用区部署，则您可以查看主数据库实例及其多可用区备用副本的操作系统指标。在 **Enhanced monitoring (增强监测)** 视图中，选择 **primary (主)** 来查看主数据库实例的操作系统指标，或选择 **secondary (辅助)** 来查看备用副本的操作系统指标。

![\[增强监测的主和辅助选择\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/enhanced-monitoring-primary-secondary.png)


有关多可用区部署的更多信息，请参阅[配置和管理 Amazon RDS 的多可用区部署](Concepts.MultiAZ.md)。

**注意**  
目前，对于 MariaDB 数据库实例，不支持查看多可用区备用副本的操作系统指标。

如果要查看运行在数据库实例上的进程的详细信息，请为**监测**选择 **OS 进程列表**。

**Process List (进程列表)** 视图如下所示。

![\[“Process list (进程列表)”视图\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/metrics2.png)


**Process list (进程列表)** 视图中所示的增强监测指标按以下方式组织：
+ **RDS child processes (RDS 子进程)** – 显示支持数据库实例的 RDS 进程的摘要，例如 和 `mysqld`（对于 MySQL 数据库实例）。进程线程在父进程下嵌套显示。进程线程仅显示 CPU 使用率，因为进程所有线程的其他指标都相同。控制台最多显示 100 个进程和线程。因此，显示结果将是占用最多 CPU 和内存的进程和线程。如果有超过 50 个进程和超过 50 个线程，则控制台只会显示每种类别的前 50 个。这种显示方式有助于您了解哪些进程对性能影响最大。
+ **RDS processes (RDS 进程)** – 摘要显示 RDS 管理代理所用的资源、诊断监控进程以及支持 RDS 数据库实例所需的其他AWS进程。
+ **OS processes** – 显示内核和系统进程摘要，这些进程通常对性能影响最小。

对每个进程列出的项目有：
+ **VIRT** – 显示进程的虚拟大小。
+ **RES** – 显示进程正在使用的实际物理内存。
+ **CPU%** – 显示进程正在使用的总 CPU 带宽的百分比。
+ **MEM%** – 显示进程使用的总内存的百分比。

RDS 控制台中显示的监控数据是从 Amazon CloudWatch Logs 中检索的。您还可以从 CloudWatch Logs 中检索数据库实例的指标作为日志流。有关更多信息，请参阅“[使用 CloudWatch Logs 查看操作系统指标](USER_Monitoring.OS.CloudWatchLogs.md)”。

以下情况下不会返回增强监测指标：
+ 数据库实例发生了故障转移。
+ 更改了数据库实例的实例类 (扩展计算)。

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

# 使用 CloudWatch Logs 查看操作系统指标
<a name="USER_Monitoring.OS.CloudWatchLogs"></a>

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

**查看增强监控日志数据**

1. 访问 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 如有必要，请选择数据库实例或多可用区数据库集群所在的 AWS 区域。有关更多信息，请参阅 *Amazon Web Services 一般参考* 中的[区域和终端节点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。

1. 在导航窗格中，选择 **Logs (日志)**。

1. 从日志组列表中选择 **RDSOSMetrics**。

   在多可用区数据库实例部署中，名称中附加了 `-secondary` 的日志文件针对多可用区备用副本。  
![\[多可用区备用副本日志文件\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/enhanced-monitoring-cloudwatch-secondary.png)

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

# Amazon RDS 的指标参考
<a name="metrics-reference"></a>

在此参考中，您可以找到 Amazon CloudWatch、Performance Insights 和增强监控的 Amazon RDS 指标的说明。

**Topics**
+ [Amazon RDS 的 Amazon CloudWatch 指标](rds-metrics.md)
+ [Amazon RDS 的 Amazon CloudWatch 维度](dimensions.md)
+ [Amazon RDS 性能详情的 Amazon CloudWatch 指标](USER_PerfInsights.Cloudwatch.md)
+ [性能详情计数器指标](USER_PerfInsights_Counters.md)
+ [Performance Insights 的 SQL 统计数据](sql-statistics.md)
+ [增强监控中的操作系统指标](USER_Monitoring-Available-OS-Metrics.md)

# Amazon RDS 的 Amazon CloudWatch 指标
<a name="rds-metrics"></a>

Amazon CloudWatch 指标可让您深入了解 Amazon RDS 实例和集群的性能和运行状况，并使您能够监控系统行为并做出以数据为依据的决策。这些指标有助于跟踪资源利用率、数据库活动和操作效率，从而可以深入了解实例的性能。

本参考资料概述了可用于 Amazon RDS 的特定指标，并说明了如何解释和使用这些指标来优化数据库性能、排查问题和确保高可用性。

Amazon RDS 将指标发布到 Amazon CloudWatch 中的 `AWS/RDS` 和 `AWS/Usage` 命名空间。

**Topics**
+ [Amazon RDS 的 Amazon CloudWatch 实例级指标](#rds-cw-metrics-instance)
+ [Amazon RDS 的 Amazon CloudWatch 用量指标](#rds-metrics-usage)

## Amazon RDS 的 Amazon CloudWatch 实例级指标
<a name="rds-cw-metrics-instance"></a>

Amazon CloudWatch 中的 `AWS/RDS` 命名空间包括以下实例级指标。

**注意**  
Amazon RDS 控制台可能会以与发送到 Amazon CloudWatch 的单位不同的单位显示指标。例如，Amazon RDS 控制台可能会以兆字节 (MB) 为单位显示一个指标，同时以字节为单位将该指标发送到 Amazon CloudWatch。


| 指标 | 描述 | 适用于 | 单位 | 
| --- | --- | --- | --- | 
| `BinLogDiskUsage` |  二进制日志所占的磁盘空间大小。如果为 MySQL 和 MariaDB 实例（包括只读副本）启用了自动备份，则会创建二进制日志。  |  MariaDB MySQL  |  字节  | 
| `BurstBalance` |  可用的通用型 SSD (GP2) 突增存储桶 I/O 点数的百分比。  |  全部  |  百分比  | 
| `CheckpointLag` |  自最近一次检查点以来的时间。  |    |  秒  | 
|  `ConnectionAttempts`  |  尝试连接实例的次数，无论成功与否。  |  MySQL  |  计数  | 
| `CPUUtilization` |  CPU 使用百分率。  |  全部  |  百分比  | 
| `CPUCreditUsage` | 实例为保持 CPU 使用率而花费的 CPU 积分数。一个 CPU 积分等于一个 vCPU 以 100% 的使用率运行一分钟或等同的 vCPU、使用率与时间的组合。例如，您可以有一个 vCPU 按 50% 使用率运行两分钟，或者两个 vCPU 按 25% 使用率运行两分钟。此指标仅适用于 db.t2、db.t3 和 db.t4g 实例。 建议仅将 T 数据库实例类用于开发和测试服务器，或其他非生产服务器。有关 T 实例类的更多详细信息，请参阅[数据库实例类类型](Concepts.DBInstanceClass.Types.md) CPU 积分指标仅每 5 分钟提供一次。如果您指定一个大于五分钟的时间段，请使用`Sum` 统计数据，而非 `Average` 统计数据。 |    |  积分 (vCPU 分钟)  | 
| `CPUCreditBalance` | 实例自启动后已累积获得的 CPU 积分数。对于 T2 标准，`CPUCreditBalance` 还包含已累积的启动积分数。在获得积分后，积分将在积分余额中累积；在花费积分后，将从积分余额中扣除积分。积分余额具有最大值限制，这是由实例大小决定的。在达到限制后，将丢弃获得的任何新积分。对于 T2 标准，启动积分不计入限制。实例可以花费 `CPUCreditBalance` 中的积分，以便突增到基准 CPU 使用率以上。在实例运行过程中，`CPUCreditBalance` 中的积分不会过期。在实例停止时，`CPUCreditBalance` 不会保留，并且所有累积的积分都将丢失。CPU 信用指标仅每 5 分钟提供一次。此指标仅适用于 db.t2、db.t3 和 db.t4g 实例。 建议仅将 T 数据库实例类用于开发和测试服务器，或其他非生产服务器。有关 T 实例类的更多详细信息，请参阅[数据库实例类类型](Concepts.DBInstanceClass.Types.md) 启动积分在 Amazon RDS 中的作用方式与在 Amazon EC2 中的作用方式相同。有关更多信息，请参阅[适用于 Linux 实例的 Amazon Elastic Compute Cloud 用户指南](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-standard-mode-concepts.html#launch-credits)中的*启动积分*。 |    |  积分（vCPU 分钟）  | 
| `CPUSurplusCreditBalance` |  在 `CPUCreditBalance` 值为零时，无限实例花费的超额积分数。 `CPUSurplusCreditBalance` 值由获得的 CPU 积分支付。如果超额积分数超出实例可在 24 小时周期内获得的最大积分数，则超出最大积分数的已花费超额积分将产生额外费用。 CPU 信用指标仅每 5 分钟提供一次。  |  全部  |  积分（vCPU 分钟）   | 
| `CPUSurplusCreditsCharged` |  未由获得的 CPU 积分支付并且会产生额外费用的已花费超额积分数。 在出现以下任一情况时，将对花费的超额积分收费： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/rds-metrics.html) CPU 信用指标仅每 5 分钟提供一次。  |  全部  |  积分（vCPU 分钟）  | 
| `DatabaseConnections` |  连接至数据库实例的客户端网络连接数。 数据库会话数可能高于指标值，因为指标值不包括以下内容： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/rds-metrics.html)  |  全部  |  计数  | 
| `DiskQueueDepth` |  等待访问磁盘的未完成 I/O（读取/写入请求）的数量。  |  全部  |  计数  | 
| `DiskQueueDepthLogVolume` |  等待访问日志卷磁盘的未完成 I/O（读取/写入请求）的数量。  |  启用了[专用日志卷](USER_PIOPS.dlv.md)的数据库实例  |  计数  | 
| `EBSByteBalance%` |  RDS 数据库突增存储桶中剩余的吞吐量积分的百分比 此指标仅对基本监控可用。 该指标值基于包括根卷在内的所有卷的吞吐量，而不是仅基于那些包含数据库文件的卷。 要查找支持此指标的实例大小，请参阅《Amazon EC2 用户指南》**中[默认优化的 EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html#current) 中带星号（\$1）的实例大小。`Sum` 统计数据不适用于该指标。  |  全部  |  百分比  | 
| `EBSIOBalance%` |  RDS 数据库突增存储桶中剩余的 I/O 积分的百分比 此指标仅对基本监控可用。 该指标值基于包括根卷在内的所有卷的 IOPS，而不是仅基于那些包含数据库文件的卷。 要查找支持此指标的实例大小，请参阅《Amazon EC2 用户指南》**中的 [Amazon EBS 优化的实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)。`Sum` 统计数据不适用于该指标。 这个指标不同于 `BurstBalance`。要了解如何使用此指标，请参阅[利用 Amazon EBS 优化型实例突发功能提升应用程序性能并降低成本](https://aws.amazon.com/blogs/compute/improving-application-performance-and-reducing-costs-with-amazon-ebs-optimized-instance-burst-capability/)。  |  全部  |  百分比  | 
| `FailedSQLServerAgentJobsCount` |  过去 1 分钟内失败的 Microsoft SQL Server Agent 作业的数量。  |  Microsoft SQL Server  |  每分钟计数  | 
| `FreeableMemory` |  随机存取内存的可用大小。 对于 MariaDB、MySQL、Oracle 和 PostgreSQL 数据库实例，此指标报告 `MemAvailable` 的 `/proc/meminfo` 字段的值。  |  全部  |  字节  | 
| `FreeLocalStorage` |  可用本地存储空间的大小。 此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。有关具有 NVMe SSD 实例存储卷的 Amazon EC2 实例的信息，请参阅[实例存储卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。等效的 RDS 数据库实例类具有相同的实例存储卷。例如，db.m6gd 和 db.r6gd 数据库实例类具有 NVMe SSD 实例存储卷。  |    |  字节  | 
| `FreeLocalStoragePercent` |  可用本地存储空间的百分比。 此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。有关具有 NVMe SSD 实例存储卷的 Amazon EC2 实例的信息，请参阅[实例存储卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。等效的 RDS 数据库实例类具有相同的实例存储卷。例如，db.m6gd 和 db.r6gd 数据库实例类具有 NVMe SSD 实例存储卷。  |    |  百分比  | 
| `FreeStorageSpace` |  可用存储空间的大小。  |  全部  |  字节  | 
| `FreeStorageSpaceLogVolume` |  日志卷上可用存储空间的大小。  |  启用了[专用日志卷](USER_PIOPS.dlv.md)的数据库实例  |  字节  | 
| `IamDbAuthConnectionRequests` |  使用 IAM 身份验证来访问数据库实例的连接请求数。  |  全部  |  计数  | 
| `MaximumUsedTransactionIDs` |  已使用的最大事务 ID。  |  PostgreSQL  |  计数  | 
| `NetworkReceiveThroughput` |  数据库实例的传入（接收）网络流量，包括用于监控和复制的客户数据库流量和 Amazon RDS 流量。  |  全部  |  每秒字节数  | 
| `NetworkTransmitThroughput` |  数据库实例的传出（传输）网络流量，包括用于监控和复制的客户数据库流量和 Amazon RDS 流量。  |  全部  |  每秒字节数  | 
| `OldestLogicalReplicationSlotLag` |  Amazon RDS 在源数据库上提交事务与 RDS 在副本数据库上应用该事务的时间之间的滞后大小。  |  PostgreSQL  |  字节  | 
| `OldestReplicationSlotLag` |  在接收预写日志 (WAL) 数据方面最滞后的副本的滞后大小。  |  PostgreSQL  |  字节  | 
| `ReadIOPS` |  每秒平均磁盘读取 I/O 操作数。  |  全部  |  每秒计数  | 
| `ReadIOPSLocalStorage` |  每秒至本地存储的平均磁盘读取输入/输出操作数。 此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。有关具有 NVMe SSD 实例存储卷的 Amazon EC2 实例的信息，请参阅[实例存储卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。等效的 RDS 数据库实例类具有相同的实例存储卷。例如，db.m6gd 和 db.r6gd 数据库实例类具有 NVMe SSD 实例存储卷。  |    |  每秒计数  | 
| `ReadIOPSLogVolume` |  每秒磁盘至日志卷平均读取 I/O 操作数。  |  启用了[专用日志卷](USER_PIOPS.dlv.md)的数据库实例  |  每秒计数  | 
| `ReadLatency` |  每个磁盘 I/O 操作所需的平均时间。  |  全部  |  秒  | 
| `ReadLatencyLocalStorage` |  每个磁盘对本地存储输入/输出操作所需的平均时间。 此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。有关具有 NVMe SSD 实例存储卷的 Amazon EC2 实例的信息，请参阅[实例存储卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。等效的 RDS 数据库实例类具有相同的实例存储卷。例如，db.m6gd 和 db.r6gd 数据库实例类具有 NVMe SSD 实例存储卷。  |    |  秒  | 
| `ReadLatencyLogVolume` |  每个磁盘至日志卷 I/O 操作所需的平均时间。  |  启用了[专用日志卷](USER_PIOPS.dlv.md)的数据库实例  |  秒  | 
| `ReadThroughput` |  每秒从磁盘读取的平均字节数。  |  全部  |  每秒字节数  | 
| `ReadThroughputLocalStorage` |  每秒从磁盘至本地存储读取的平均字节数。 此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。有关具有 NVMe SSD 实例存储卷的 Amazon EC2 实例的信息，请参阅[实例存储卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。等效的 RDS 数据库实例类具有相同的实例存储卷。例如，db.m6gd 和 db.r6gd 数据库实例类具有 NVMe SSD 实例存储卷。  |    |  每秒字节数  | 
| `ReadThroughputLogVolume` |  每秒从磁盘向日志卷读取的平均字节数。  |  启用了[专用日志卷](USER_PIOPS.dlv.md)的数据库实例  |  每秒字节数  | 
| `ReplicaLag` |  对于只读副本配置，只读副本数据库实例滞后于源数据库实例的时间量。适用于 MariaDB、Microsoft SQL Server、MySQL、Oracle 和 PostgreSQL 只读副本。 对于多可用区数据库集群，写入器数据库实例上的最新事务与读取器数据库实例上的最新应用事务之间的时间差异。  |    |  秒  | 
| `ReplicationChannelLag` |  对于多源副本配置，多源副本上的特定通道滞后于源数据库实例的时间量。有关更多信息，请参阅 [监控多源复制通道](mysql-multi-source-replication.md#mysql-multi-source-replication-monitoring)。  |  MySQL  |  秒  | 
| `ReplicationSlotDiskUsage` |  副本槽文件使用的磁盘空间。  |  PostgreSQL  |  字节  | 
| `SwapUsage` |  数据库实例上使用的交换空间的大小。  |  MariaDB MySQL Oracle PostgreSQL  |  字节  | 
| `TempDbAvailableDataSpace` |  tempdb 和 tempdb 所在卷上的可用数据空间量。 使用此指标可监控 tempdb 数据空间可用性并相应地规划容量。较低的值可能表示需要增加存储空间或优化大量使用 tempdb 的查询。  | SQL Server | 字节 | 
| `TempDbAvailableLogSpace` |  tempdb 和 tempdb 所在卷上的可用日志空间量。 使用此指标可监控 tempdb 日志空间可用性并防止出现事务日志已满情况。对于大型事务或并发性高的工作负载至关重要，这些工作负载会生成大量日志活动。  | SQL Server | 字节 | 
| `TempDbDataFileUsage` |  tempdb 上使用的数据文件的百分比。该指标未考虑潜在的文件增长。 使用此指标可监控 tempdb 数据文件利用率并识别潜在的性能瓶颈。较高的值可能表示需要优化创建大型临时对象的查询或增加 tempdb 大小。  | SQL Server | 百分比 | 
| `TempDbLogFileUsage` |  tempdb 上使用的日志文件的百分比。该指标未考虑潜在的文件增长。 使用此指标可监控 tempdb 日志文件利用率并防止出现性能问题。较高的值可能表示长时间运行的事务或过多的日志记录活动可能会影响数据库的整体性能。  | SQL Server | 百分比 | 
| `TransactionLogsDiskUsage` |  事务日志使用的磁盘空间。  |  PostgreSQL  |  字节  | 
| `TransactionLogsGeneration` |  每秒生成的事务日志的大小。  |  PostgreSQL  |  每秒字节数  | 
| `WriteIOPS` |  每秒平均磁盘写入 I/O 操作数。  |  全部  |  每秒计数  | 
| `WriteIOPSLocalStorage` |  本地存储上的每秒平均磁盘写入 I/O 操作数。 此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。有关具有 NVMe SSD 实例存储卷的 Amazon EC2 实例的信息，请参阅[实例存储卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。等效的 RDS 数据库实例类具有相同的实例存储卷。例如，db.m6gd 和 db.r6gd 数据库实例类具有 NVMe SSD 实例存储卷。  |    |  每秒计数  | 
| `WriteIOPSLogVolume` |  每秒磁盘至日志卷平均写入 I/O 操作数。  |  启用了[专用日志卷](USER_PIOPS.dlv.md)的数据库实例  |  每秒计数  | 
| `WriteLatency` |  每个磁盘 I/O 操作所需的平均时间。  |  全部  |  秒  | 
| `WriteLatencyLocalStorage` |  本地存储上每个磁盘 I/O 操作所需的平均时间。 此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。有关具有 NVMe SSD 实例存储卷的 Amazon EC2 实例的信息，请参阅[实例存储卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。等效的 RDS 数据库实例类具有相同的实例存储卷。例如，db.m6gd 和 db.r6gd 数据库实例类具有 NVMe SSD 实例存储卷。  |    |  秒  | 
| `WriteLatencyLogVolume` |  每个磁盘至日志卷 I/O 操作所需的平均时间。  |  启用了[专用日志卷](USER_PIOPS.dlv.md)的数据库实例  |  秒  | 
| `WriteThroughput` |  每秒写入磁盘的平均字节数。  |  全部  |  每秒字节数  | 
| `WriteThroughputLogVolume` |  每秒日志卷写入磁盘的平均字节数。  |  启用了[专用日志卷](USER_PIOPS.dlv.md)的数据库实例  |  每秒字节数  | 
| `WriteThroughputLocalStorage` |  本地存储每秒写入磁盘的平均字节数。 此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。有关具有 NVMe SSD 实例存储卷的 Amazon EC2 实例的信息，请参阅[实例存储卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。等效的 RDS 数据库实例类具有相同的实例存储卷。例如，db.m6gd 和 db.r6gd 数据库实例类具有 NVMe SSD 实例存储卷。  |    |  每秒字节数  | 

## Amazon RDS 的 Amazon CloudWatch 用量指标
<a name="rds-metrics-usage"></a>

Amazon CloudWatch 中的 `AWS/Usage` 命名空间包括 Amazon RDS 服务配额的账户级用量指标。CloudWatch 自动收集所有 AWS 区域的使用量指标。

有关更多信息，请参阅《Amazon CloudWatch 用户指南》**中的 [CloudWatch 用量指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Usage-Metrics.html)。有关配额的更多信息，请参阅《服务配额用户指南》**中的 [Amazon RDS 的配额和限制](CHAP_Limits.md)和[请求增加配额](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。


| 指标 | 描述 | 单位\$1 | 
| --- | --- | --- | 
| AllocatedStorage |  所有数据库实例的总存储空间。总和不包括临时迁移实例。  |  千兆字节  | 
| AuthorizationsPerDBSecurityGroup |  您的 AWS 账户中每个数据库安全组的入口规则数。使用的值是账户中数据库安全组中入口规则的最大数。账户中的其他数据库安全组的入口规则数可能较少。  |  计数  | 
| CustomEndpointsPerDBCluster |  您的 AWS 账户中每个数据库集群的自定义端点数。使用的值是账户中数据库集群内自定义端点的最大数。账户中的其他数据库集群可能具有更少的自定义端点数。  |  计数  | 
| CustomEngineVersions |  您的 AWS 账户中 Amazon RDS Custom 的自定义引擎版本（CEV）数量。  |  计数  | 
| DBClusterParameterGroups |  您的 AWS 账户中数据库集群参数组的数量。该计数不包括默认参数组。  |  计数  | 
| DBClusterRoles |  您的 AWS 账户中每个数据库集群的关联 AWS Identity and Access Management（IAM）角色数。使用的值是账户中数据库集群关联的 IAM 角色的最大数量。账户中的其他数据库集群可能具有更少的关联 IAM 角色数。  |  计数  | 
| DBClusters |  您的 AWS 账户 中的 Amazon Aurora 数据库集群数量。  |  计数  | 
| DBInstanceRoles |  您的 AWS 账户中每个数据库实例的关联 AWS Identity and Access Management（IAM）角色数。使用的值是账户中数据库实例关联的 IAM 角色的最大数量。账户中的其他数据库实例可能具有更少的关联 IAM 角色数。  |  计数  | 
| DBInstances |  您的 AWS 账户 中的数据库实例数量。  |  计数  | 
| DBParameterGroups |  您的 AWS 账户 中的数据库参数组数量。该计数不包括默认数据库参数组。  |  计数  | 
| DBSecurityGroups |  您的 AWS 账户 中的安全组数量。该计数不包括默认安全组和默认 VPC 安全组。  |  计数  | 
| DBSubnetGroups  |  您的 AWS 账户 中的数据库子网组数量。该计数不包括默认子网组。  |  计数  | 
| EventSubscriptions | 您的 AWS 账户中的事件通知订阅数量。 | 计数 | 
| Integrations | 您的 AWS 账户中与 Amazon Redshift 进行的零 ETL 集成数量。 | 计数 | 
| ManualClusterSnapshots |  您的 AWS 账户 中手动创建的数据库集群快照数量。该计数不包括无效快照。  |  计数  | 
| ManualSnapshots |  您的 AWS 账户 中手动创建的数据库快照数量。该计数不包括无效快照。  |  计数  | 
| OptionGroups |  您的 AWS 账户 中的选项组数量。该计数不包括默认选项组。  |  计数  | 
| Proxies |  您的 AWS 账户中 RDS 代理的数量。  |  计数  | 
| ReadReplicasPerMaster |  您的账户中每个数据库实例的只读副本数。使用的值是账户中数据库实例的只读副本的最大数。账户中的其他数据库实例可能具有更少的只读副本数。  |  计数  | 
| ReservedDBInstances |  您的 AWS 账户 中的预留数据库实例数量。该计数不包括停用或被拒绝的实例。  |  计数  | 
| SubnetsPerDBSubnetGroup |  您的 AWS 账户中每个数据库子网组的子网数。账户中数据库子网组中子网的最大数。账户中的其他数据库子网组可能具有更少的子网数量。  |  计数  | 

**注意**  
Amazon RDS 不会向 CloudWatch 发布用量指标的单位。这些单位仅出现在文档中。

# Amazon RDS 的 Amazon CloudWatch 维度
<a name="dimensions"></a>

您可以使用下表中的任何维度筛选 Amazon RDS 指标数据。


|  维度  |  筛选为 . . 请求的数据  | 
| --- | --- | 
|  DBInstanceIdentifier  |  特定的数据库实例。  | 
|  DatabaseClass  |  数据库类中的所有实例。例如，您可以聚合属于数据库类 `db.r5.large` 的所有实例的指标。  | 
|  EngineName  |  仅标识的引擎名称。例如，您可以聚合具有引擎名称 `postgres` 的所有实例的指标。  | 
|  SourceRegion  |  仅指定区域。例如，您可以聚合 `us-east-1` 区域中的所有数据库实例的指标。  | 
|  DbInstanceIdentifier, VolumeName  |  单个实例的每个卷的指标。 RDS 捕获多个存储卷的指标。  | 

**注意**  
如果您使用附加存储卷，则可以在 `DBInstanceIdentifier` 维度下查看聚合存储指标。要查看每个卷的存储指标，请使用 `DbInstanceIdentifier, VolumeName` 维度。

# Amazon RDS 性能详情的 Amazon CloudWatch 指标
<a name="USER_PerfInsights.Cloudwatch"></a>

性能详情会自动将一些指标发布到 Amazon CloudWatch。可以从 Performance Insights 查询相同的数据，但具有 CloudWatch 中的指标可以轻松地添加 CloudWatch 警报。还可以轻松地将指标添加到现有 CloudWatch 控制面板中。


| 指标 | 描述 | 
| --- | --- | 
|  DBLoad  |  数据库的活动会话的数量。通常，您需要活动会话的平均数量数据。在 Performance Insights 中，作为 `db.load.avg` 查询此数据。  | 
|  DBLoadCPU  |  等待事件类型为 CPU 的活动会话的数量。在 Performance Insights 中，作为 `db.load.avg` 查询此数据，按等待事件类型 `CPU` 进行筛选。  | 
|  DBLoadNonCPU  |  等待事件类型不为 CPU 的活动会话的数量。  | 
| DBLoadRelativeToNumVCPUs |  数据库负载与数据库的虚拟 CPU 数量之比。  | 

**注意**  
仅当数据库实例上有负载时，这些指标才会发布到 CloudWatch。

可以使用 CloudWatch 控制台、AWS CLI 或 CloudWatch API 来查看这些指标。您还可以使用特殊的指标数学函数检查其他性能详情计数器指标。有关更多信息，请参阅 [在 CloudWatch 中查询其他性能详情计数器指标](#USER_PerfInsights.Cloudwatch.ExtraMetrics)。

例如，可以通过运行 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令来获取 `DBLoad` 指标的统计数据。

```
aws cloudwatch get-metric-statistics \
    --region us-west-2 \
    --namespace AWS/RDS \
    --metric-name DBLoad  \
    --period 60 \
    --statistics Average \
    --start-time 1532035185 \
    --end-time 1532036185 \
    --dimensions Name=DBInstanceIdentifier,Value=db-loadtest-0
```

该示例将生成与下类似的输出。

```
{
		"Datapoints": [
		{
		"Timestamp": "2021-07-19T21:30:00Z",
		"Unit": "None",
		"Average": 2.1
		},
		{
		"Timestamp": "2021-07-19T21:34:00Z",
		"Unit": "None",
		"Average": 1.7
		},
		{
		"Timestamp": "2021-07-19T21:35:00Z",
		"Unit": "None",
		"Average": 2.8
		},
		{
		"Timestamp": "2021-07-19T21:31:00Z",
		"Unit": "None",
		"Average": 1.5
		},
		{
		"Timestamp": "2021-07-19T21:32:00Z",
		"Unit": "None",
		"Average": 1.8
		},
		{
		"Timestamp": "2021-07-19T21:29:00Z",
		"Unit": "None",
		"Average": 3.0
		},
		{
		"Timestamp": "2021-07-19T21:33:00Z",
		"Unit": "None",
		"Average": 2.4
		}
		],
		"Label": "DBLoad"
		}
```

有关 CloudWatch 的更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[什么是 Amazon CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)。

## 在 CloudWatch 中查询其他性能详情计数器指标
<a name="USER_PerfInsights.Cloudwatch.ExtraMetrics"></a>

**注意**  
如果您启用数据库洞察的高级模式，Amazon RDS 会向 Amazon CloudWatch 发布性能详情计数器指标。使用数据库洞察，不需要使用 `DB_PERF_INSIGHTS` 指标数学函数。您可以使用 CloudWatch 数据库洞察控制面板来搜索、查询性能详情计数器指标并为其设置警报。

您可以对 CloudWatch 中的 RDS 性能详情指标进行查询、创建警报和绘制图表。您可以使用 CloudWatch 的 `DB_PERF_INSIGHTS` 指标数学函数，来访问有关数据库实例的信息。借助此功能，您可以使用未直接报告给 CloudWatch 的性能详情指标来创建新的时间序列。

您可以在 CloudWatch 控制台的**选择指标**屏幕中单击**添加数学**下拉菜单，来使用新的指标数学函数。您可以使用它来创建有关性能详情指标，或者 CloudWatch 和性能详情指标组合的警报和图表，包括亚分钟指标的高分辨率警报。您也可以通过在 [https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html) 请求中包含公制数学表达式来以编程方式使用该函数。有关更多信息，请参阅[指标数学语法和函数](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax-functions-list)，以及[针对 AWS 数据库中的性能详情计数器指标创建警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_alarm_database_performance_insights.html)。

# 性能详情计数器指标
<a name="USER_PerfInsights_Counters"></a>

计数器指标是性能详情控制面板中的操作系统和数据库性能指标。为帮助确定和分析性能问题，您可将计数器指标与数据库负载相关联。您必须向指标追加一个统计函数来获取指标值。例如，`os.memory.active` 指标支持的函数为 `.avg`、`.min`、`.max`、`.sum` 和 `.sample_count`。

每分钟收集一次计数器指标。操作系统指标收集取决于增强监控是开启还是关闭。如果关闭增强监控，则每分钟收集一次操作系统指标。如果开启增强监控，则会收集所选时间段内的操作系统指标。有关开启或关闭增强监控的更多信息，请参阅[打开和关闭增强监控](USER_Monitoring.OS.Enabling.md#USER_Monitoring.OS.Enabling.Procedure)。

**Topics**
+ [性能详情操作系统计数器](#USER_PerfInsights_Counters.OS)
+ [适用于 Amazon RDS for MariaDB 和 MySQL 的性能详情计数器](#USER_PerfInsights_Counters.MySQL)
+ [适用于 Amazon RDS for Microsoft SQL Server 的性能详情计数器](#USER_PerfInsights_Counters.SQLServer)
+ [Amazon RDS for Oracle 的性能详情计数器](#USER_PerfInsights_Counters.Oracle)
+ [适用于 Amazon RDS for PostgreSQL 的性能详情计数器](#USER_PerfInsights_Counters.PostgreSQL)

## 性能详情操作系统计数器
<a name="USER_PerfInsights_Counters.OS"></a>

以下操作系统计数器（前缀为 `os`）可用于除 RDS for SQL Server 之外的所有 RDS 引擎的性能详情。

您可以使用 `ListAvailableResourceMetrics` API 获取数据库实例的可用计数器指标列表。有关更多信息，请参阅《Amazon RDS 性能详情 API 参考指南》中的 [ListAvailableResourceMetrics](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceMetrics)。


| 计数器 | 类型 | 单位 | 指标 | 说明 | 
| --- | --- | --- | --- | --- | 
| Active | 内存 | 千字节 | os.memory.active | 已分配的内存量 (以 KB 为单位)。 | 
| Buffers | 内存 | 千字节 | os.memory.buffers | 在写入存储设备前用于缓存 I/O 请求的内存量 (以 KB 为单位)。 | 
| 已缓存 | 内存 | 千字节 | os.memory.cached | 用于缓存基于文件系统的 I/O 的内存量，以 KB 为单位。 | 
| 数据库缓存 | 内存 | 字节 | os.memory.db.cache |  包括 tmpfs (shmem) 在内的数据库进程用于页面缓存的内存量，以字节为单位。  | 
| 数据库驻留集大小 | 内存 | 字节 | os.memory.db.residentSetSize |  不包括 tmpfs (shmem) 的数据库进程用于匿名缓存和交换缓存的内存量，以字节为单位。  | 
| 数据库交换 | 内存 | 字节 | os.memory.db.swap |   数据库进程用于交换的内存量，以字节为单位。  | 
| 脏 | 内存 | 千字节 | os.memory.dirty | RAM 中已修改但未写入存储中的相关数据块的内存页面大小 (以 KB 为单位)。 | 
| Free | 内存 | 千字节 | os.memory.free | 未分配的内存量 (以 KB 为单位)。 | 
| Huge Pages Free | 内存 | 页面 | os.memory.hugePagesFree | 可用大页数。大页是 Linux 内核的一项功能。 | 
| Huge Pages Rsvd | 内存 | 页面 | os.memory.hugePagesRsvd | 已提交大页数。 | 
| Huge Pages Size | 内存 | 千字节 | os.memory.hugePagesSize | 每个大页单位的大小 (以 KB 为单位)。 | 
| Huge Pages Surp | 内存 | 页面 | os.memory.hugePagesSurp | 剩余可用大页总数。 | 
| Huge Pages Total | 内存 | 页面 | os.memory.hugePagesTotal | 大页总数。 | 
| Inactive | 内存 | 千字节 | os.memory.inactive | 最不常用内存页面大小 (以 KB 为单位)。 | 
| 已映射 | 内存 | 千字节 | os.memory.mapped | 在进程地址空间中有内存映射的文件系统内容的总大小 (以 KB 为单位)。 | 
| 内存不足终止计数 | 内存 | 终止次数 | os.memory.outOfMemoryKillCount |  在上次收集间隔内发生的 OOM 终止次数。  | 
| Page Tables | 内存 | 千字节 | os.memory.pageTables | 页表使用的内存量 (以 KB 为单位)。 | 
| 碎片 | 内存 | 千字节 | os.memory.slab | 可重用内核数据结构大小 (以 KB 为单位)。 | 
| Total | 内存 | 千字节 | os.memory.total | 内存总量 (以 KB 为单位)。 | 
| 回写 | 内存 | 千字节 | os.memory.writeback | RAM 中仍在写入备份存储的脏页大小 (以 KB 为单位)。 | 
| 来宾 | Cpu 利用率 | 百分比 | os.cpuUtilization.guest | 来宾程序使用的 CPU 百分比。 | 
| Idle | Cpu 利用率 | 百分比 | os.cpuUtilization.idle | CPU 空闲百分比。 | 
| Irq | Cpu 利用率 | 百分比 | os.cpuUtilization.irq | 软件中断使用的 CPU 百分比。 | 
| 良好 | Cpu 利用率 | 百分比 | os.cpuUtilization.nice | 以最低优先级运行的程序使用的 CPU 百分比。 | 
| 被盗用 | Cpu 利用率 | 百分比 | os.cpuUtilization.steal | 其他虚拟机使用的 CPU 百分比。 | 
| System | Cpu 利用率 | 百分比 | os.cpuUtilization.system | 内核使用的 CPU 百分比。 | 
| Total | Cpu 利用率 | 百分比 | os.cpuUtilization.total | 使用中的 CPU 百分比总计。此值包含 nice（良好）值。 | 
| User | Cpu 利用率 | 百分比 | os.cpuUtilization.user | 用户程序使用的 CPU 百分比。 | 
| Wait | Cpu 利用率 | 百分比 | os.cpuUtilization.wait | 等待 I/O 访问时的未使用 CPU 百分比。 | 
|  读取 IO PS  | 磁盘 IO | 每秒请求数 |  os.diskIO.<devicename>.readIOsPS  | 每秒的读取操作数。 | 
|  写入 IO PS  | 磁盘 IO | 每秒请求数 |  os.diskIO.<devicename>.writeIOsPS  | 每秒的写入操作数。 | 
|  平均队列长度 | 磁盘 IO | 请求 |  os.diskIO.<devicename>.avgQueueLen  | 在 I/O 设备队列中等待的请求数。 | 
|  平均请求大小  | 磁盘 IO | 请求 |  os.diskIO.<devicename>.avgReqSz  | 在 I/O 设备队列中等待的请求数。 | 
|  等待  | 磁盘 IO | 毫秒 |  os.diskIO.<devicename>.await  | 响应请求所需的毫秒数，包括排队时间和服务时间。 | 
|  读取 IO PS  | 磁盘 IO | 请求 |  os.diskIO.<devicename>.readIOsPS  | 每秒的读取操作数。 | 
|  读取 KB  | 磁盘 IO | 千字节 |  os.diskIO.<devicename>.readKb  | 读取的总 KB 数。 | 
|  Read KB PS  | 磁盘 IO | 千字节/秒 |  os.diskIO.<devicename>.readKbPS  | 每秒读取的 KB 数。 | 
|  Rrqm PS  | 磁盘 IO | 每秒请求数 |  os.diskIO.<devicename>.rrqmPS  | 每秒排队的合并读取请求数。 | 
|  TPS  | 磁盘 IO | 每秒事务数 |  os.diskIO.<devicename>.tps  | 每秒的 I/O 事务数。 | 
|  Util  | 磁盘 IO | 百分比 |  os.diskIO.<devicename>.util  | 发出请求所经历的 CPU 时间的百分比。 | 
|  Write KB  | 磁盘 IO | 千字节 |  os.diskIO.<devicename>.writeKb  | 写入的总 KB 数。 | 
|  写入 KB PS  | 磁盘 IO | 千字节/秒 |  os.diskIO.<devicename>.writeKbPS  | 每秒写入的 KB 数。 | 
|  Wrqm PS  | 磁盘 IO | 每秒请求数 |  os.diskIO.<devicename>.wrqmPS  | 每秒排队的合并写入请求数。 | 
| 阻止 | 任务 | 任务 | os.tasks.blocked | 已阻止的任务的数量。 | 
| 运行 | 任务 | 任务 | os.tasks.running | 正在运行的任务的数量。 | 
| Sleeping | 任务 | 任务 | os.tasks.sleeping | 正在睡眠的任务的数量。 | 
| Stopped（已停止） | 任务 | 任务 | os.tasks.stopped | 已停止的任务的数量。 | 
| Total | 任务 | 任务 | os.tasks.total | 任务总数。 | 
| Zombie | 任务 | 任务 | os.tasks.zombie | 有活动父任务的不活动子任务的数量。 | 
| 一 | 加载平均分钟数 | 进程 | os.loadAverageMinute.one | 过去 1 分钟内请求 CPU 时间的进程数。 | 
| 十五 | 加载平均分钟数 | 进程 | os.loadAverageMinute.fifteen | 过去 15 分钟内请求 CPU 时间的进程数。 | 
| 五 | 加载平均分钟数 | 进程 | os.loadAverageMinute.five | 过去 5 分钟内请求 CPU 时间的进程数。 | 
| 已缓存 | Swap (交换) | 千字节 | os.swap.cached | 用作缓存内存的交换内存量 (以 KB 为单位)。 | 
| 免费 | Swap (交换) | 千字节 | os.swap.free | 空闲交换内存量（以 KB 为单位）。 | 
| In | Swap (交换) | 千字节 | os.swap.in | 从磁盘换入的内存量（以 KB 为单位）。 | 
| Out | Swap (交换) | 千字节 | os.swap.out | 换出到磁盘的内存量（以 KB 为单位）。 | 
| Total | Swap (交换) | 千字节 | os.swap.total |  可用的总交换内存量（以 KB 为单位）。  | 
| 最大文件数 | 文件系统 | 文件 | os.fileSys.maxFiles | 可以跨所有存储卷为文件系统创建的最大文件数。 | 
| 已用文件 | 文件系统 | 文件 | os.fileSys.usedFiles | 文件系统中跨所有存储卷的文件数。 | 
| 已用文件百分比 | 文件系统 | 文件 | os.fileSys.usedFilePercent | 跨所有存储卷正在使用的可用文件的百分比。 | 
| 已用百分比 | 文件系统 | 百分比 | os.fileSys.usedPercent | 跨所有存储卷正在使用的文件系统磁盘空间百分比。 | 
| 已用 | 文件系统 | 千字节 | os.fileSys.used | 文件系统中的文件跨所有存储卷使用的磁盘空间量，以 KB 为单位。 | 
| Total | 文件系统 | 千字节 | os.fileSys.total | 文件系统跨所有存储卷可用的总磁盘空间，以 KB 为单位。 | 
| 最大文件数 | 文件系统 | 文件 | os.fileSys.<volumeName>.maxFiles | 可为存储卷创建的最大文件数。 | 
| 已用文件 | 文件系统 | 文件 | os.fileSys.<volumeName>.usedFiles | 存储卷中的文件数。 | 
| 已用文件百分比 | 文件系统 | 文件 | os.fileSys.<volumeName>.usedFilePercent | 存储卷中正在使用的可用文件百分比。 | 
| 已用百分比 | 文件系统 | 百分比 | os.fileSys.<volumeName>.usedPercent | 使用中的存储卷磁盘空间百分比。 | 
| 已用 | 文件系统 | 千字节 | os.fileSys.<volumeName>.used | 存储卷中的文件所用的磁盘空间量，以 KB 为单位。 | 
| Total | 文件系统 | 千字节 | os.fileSys.<volumeName>.total | 存储卷中可用的总磁盘空间，以 KB 为单位。 | 
| Rx | Network | 每秒字节数 | os.network.rx | 每秒接收的字节数。 | 
| Tx | Network | 每秒字节数 | os.network.tx | 每秒上传的字节数。 | 
| Acu 利用率 | General | 百分比 | os.general.acuUtilization |  当前容量占最大配置容量的百分比。  | 
| 最大配置的 Acu | General | ACU | os.general.maxConfiguredAcu |  用户配置的最大容量，以 Aurora 容量单位（ACU）为单位。  | 
| 最小配置的 Acu | General | ACU | os.general.minConfiguredAcu |  用户配置的最小容量，以 ACU 为单位。  | 
| VCPU 数量 | General | vCPU | os.general.numVCPUs | 数据库实例的虚拟 CPU（vCPU）数量。 | 
| 无服务器数据库容量 | General | ACU | os.general.serverlessDatabaseCapacity |  实例以 ACU 表示的当前容量。  | 

## 适用于 Amazon RDS for MariaDB 和 MySQL 的性能详情计数器
<a name="USER_PerfInsights_Counters.MySQL"></a>

以下数据库计数器可用于适用于 Amazon RDS for MariaDB 和 MySQL 的性能详情。

**Topics**
+ [RDS for MariaDB 和 RDS for MySQL 的本机计数器](#USER_PerfInsights_Counters.MySQL.Native)
+ [适用于 Amazon RDS for MariaDB 和 RDS for MySQL 的非本机计数器](#USER_PerfInsights_Counters.MySQL.NonNative)

### RDS for MariaDB 和 RDS for MySQL 的本机计数器
<a name="USER_PerfInsights_Counters.MySQL.Native"></a>

本机指标由数据库引擎定义，而不是由 Amazon RDS 定义。有关这些本机指标的定义，请参阅 MySQL 文档中的 [Server Status Variables](https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html)（适用于 8.0）和 [Server Status Variables](https://dev.mysql.com/doc/refman/8.4/en/server-status-variables.html)（适用于 8.4）。


| 计数器 | 类型 | 单位 | 指标 | 
| --- | --- | --- | --- | 
| Com\$1analyze | SQL | 每秒查询数 | db.SQL.Com\$1analyze | 
| Com\$1optimize | SQL | 每秒查询数 | db.SQL.Com\$1optimize | 
| Com\$1select | SQL | 每秒查询数 | db.SQL.Com\$1select | 
| 连接 | SQL | 每分钟尝试连接到 MySQL 服务器的次数（无论成功与否） | db.Users.Connections | 
| Innodb\$1rows\$1deleted | SQL | 每秒行数 | db.SQL.Innodb\$1rows\$1deleted | 
| Innodb\$1rows\$1inserted | SQL | 每秒行数 | db.SQL.Innodb\$1rows\$1inserted | 
| Innodb\$1rows\$1read | SQL | 每秒行数 | db.SQL.Innodb\$1rows\$1read | 
| Innodb\$1rows\$1updated | SQL | 每秒行数 | db.SQL.Innodb\$1rows\$1updated | 
| Select\$1full\$1join | SQL | 每秒查询数 | db.SQL.Select\$1full\$1join | 
| Select\$1full\$1range\$1join | SQL | 每秒查询数 | db.SQL.Select\$1full\$1range\$1join | 
| Select\$1range | SQL | 每秒查询数 | db.SQL.Select\$1range | 
| Select\$1range\$1check | SQL | 每秒查询数 | db.SQL.Select\$1range\$1check | 
| Select\$1scan | SQL | 每秒查询数 | db.SQL.Select\$1scan | 
| Slow\$1queries | SQL | 每秒查询数 | db.SQL.Slow\$1queries | 
| Sort\$1merge\$1passes | SQL | 每秒查询数 | db.SQL.Sort\$1merge\$1passes | 
| Sort\$1range | SQL | 每秒查询数 | db.SQL.Sort\$1range | 
| Sort\$1rows | SQL | 每秒查询数 | db.SQL.Sort\$1rows | 
| Sort\$1scan | SQL | 每秒查询数 | db.SQL.Sort\$1scan | 
| 问题 | SQL | 每秒查询数 | db.SQL.Questions | 
| Innodb\$1row\$1lock\$1time | 锁 | 毫秒数（平均值） | db.Locks.Innodb\$1row\$1lock\$1time | 
| Table\$1locks\$1immediate | 锁 | 每秒请求数 | db.Locks.Table\$1locks\$1immediate | 
| Table\$1locks\$1waited | 锁 | 每秒请求数 | db.Locks.Table\$1locks\$1waited | 
| Aborted\$1clients | 用户 | 连接 | db.Users.Aborted\$1clients | 
| Aborted\$1connects | 用户 | 连接 | db.Users.Aborted\$1connects | 
| max\$1connections | 用户 | Connections | db.User.max\$1connections | 
| Threads\$1created | 用户 | 连接 | db.Users.Threads\$1created | 
| Threads\$1running | 用户 | 连接 | db.Users.Threads\$1running | 
| Innodb\$1data\$1writes | I/O | 每秒操作数 | db.IO.Innodb\$1data\$1writes | 
| Innodb\$1dblwr\$1writes | I/O | 每秒操作数 | db.IO.Innodb\$1dblwr\$1writes | 
| Innodb\$1log\$1write\$1requests | I/O | 每秒操作数 | db.IO.Innodb\$1log\$1write\$1requests | 
| Innodb\$1log\$1writes | I/O | 每秒操作数 | db.IO.Innodb\$1log\$1writes | 
| Innodb\$1pages\$1written | I/O | 每秒页数 | db.IO.Innodb\$1pages\$1written | 
| Created\$1tmp\$1disk\$1tables | 临时文件 | 每秒表数 | db.Temp.Created\$1tmp\$1disk\$1tables | 
| Created\$1tmp\$1tables | 临时文件 | 每秒表数 | db.Temp.Created\$1tmp\$1tables | 
| Innodb\$1buffer\$1pool\$1pages\$1data | 缓存 | 页面 | db.Cache.Innodb\$1buffer\$1pool\$1pages\$1data | 
| Innodb\$1buffer\$1pool\$1pages\$1total | 缓存 | 页面 | db.Cache.Innodb\$1buffer\$1pool\$1pages\$1total | 
| Innodb\$1buffer\$1pool\$1read\$1requests | 缓存 | 每秒页数 | db.Cache.Innodb\$1buffer\$1pool\$1read\$1requests | 
| Innodb\$1buffer\$1pool\$1reads | 缓存 | 每秒页数 | db.Cache.Innodb\$1buffer\$1pool\$1reads | 
| Opened\$1tables | 缓存 | 表 | db.Cache.Opened\$1tables | 
| Opened\$1table\$1definitions | 缓存 | 表 | db.Cache.Opened\$1table\$1definitions | 
| Qcache\$1hits | 缓存 | 查询 | db.Cache.Qcache\$1hits | 

### 适用于 Amazon RDS for MariaDB 和 RDS for MySQL 的非本机计数器
<a name="USER_PerfInsights_Counters.MySQL.NonNative"></a>

非本机计数器指标是 Amazon RDS 定义的计数器。非本机指标可以是您使用特定查询获取的指标。非本机指标还可以是派生指标，使用两个或更多个本机计数器来计算比率、命中率或延迟。


| 计数器 | 类型 | 单位 | 指标 | 描述 | 定义 | 
| --- | --- | --- | --- | --- | --- | 
| innodb\$1buffer\$1pool\$1hits | Cache | 写入 | db.Cache.innoDB\$1buffer\$1pool\$1hits | InnoDB 可满足的缓冲池中的读取数。 | innodb\$1buffer\$1pool\$1read\$1requests - innodb\$1buffer\$1pool\$1reads | 
| innodb\$1buffer\$1pool\$1hit\$1rate | Cache | 百分比 | db.Cache.innoDB\$1buffer\$1pool\$1hit\$1rate | InnoDB 可满足的缓冲池中的读取百分比。 | 100 \$1 innodb\$1buffer\$1pool\$1read\$1requests / (innodb\$1buffer\$1pool\$1read\$1requests \$1 innodb\$1buffer\$1pool\$1reads) | 
| innodb\$1buffer\$1pool\$1usage | Cache | 百分比 | db.Cache.innoDB\$1buffer\$1pool\$1usage |  包含数据（页面）的 InnoDB 缓冲池的百分比。  在使用压缩表时，此值可改变。有关更多信息，请参阅 MySQL 文档的 [Server Status Variables](https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html)（适用于 8.0）和 [Server Status Variables](https://dev.mysql.com/doc/refman/8.4/en/server-status-variables.html)（适用于 8.4）中有关 `Innodb_buffer_pool_pages_data` 和 `Innodb_buffer_pool_pages_total` 的信息。   | Innodb\$1buffer\$1pool\$1pages\$1data / Innodb\$1buffer\$1pool\$1pages\$1total \$1 100.0 | 
| query\$1cache\$1hit\$1rate | Cache | 百分比 | db.Cache.query\$1cache\$1hit\$1rate | MySQL 结果集缓存（查询缓存）命中率。 | Qcache\$1hits / (QCache\$1hits \$1 Com\$1select) \$1 100 | 
| innodb\$1datafile\$1writes\$1to\$1disk | I/O | 读取 | db.IO.innoDB\$1datafile\$1writes\$1to\$1disk | InnoDB 数据文件写入磁盘的操作数，不包括两次写和重做日志记录写入操作。 | Innodb\$1data\$1writes - Innodb\$1log\$1writes - Innodb\$1dblwr\$1writes | 
| innodb\$1rows\$1changed | SQL | 行 | db.SQL.innodb\$1rows\$1changed | 总 InnoDB 行操作数。 | db.SQL.Innodb\$1rows\$1inserted \$1 db.SQL.Innodb\$1rows\$1deleted \$1 db.SQL.Innodb\$1rows\$1updated | 
| active\$1transactions | 事务 | 事务 | db.Transactions.active\$1transactions | 总活动事务数。 | SELECT COUNT(1) AS active\$1transactions FROM INFORMATION\$1SCHEMA.INNODB\$1TRX | 
| trx\$1rseg\$1history\$1len | 事务 | 无 | db.Transactions.trx\$1rseg\$1history\$1len | InnoDB 事务系统维护的已提交事务的撤消日志页面列表，用于实现多版本并发控制。有关撤消日志记录详细信息的更多信息，请参阅 MySQL 文档中的 [InnoDB Multi-Versioning](https://dev.mysql.com/doc/refman/8.0/en/innodb-multi-versioning.html)（适用于 8.0）和 [InnoDB Multi-Versioning](https://dev.mysql.com/doc/refman/8.4/en/innodb-multi-versioning.html)（适用于 8.4）。 | SELECT COUNT AS trx\$1rseg\$1history\$1len FROM INFORMATION\$1SCHEMA.INNODB\$1METRICS WHERE NAME='trx\$1rseg\$1history\$1len'  | 
| innodb\$1deadlocks | 锁 | 锁 | db.Locks.innodb\$1deadlocks | 死锁总数。 | SELECT COUNT AS innodb\$1deadlocks FROM INFORMATION\$1SCHEMA.INNODB\$1METRICS WHERE NAME='lock\$1deadlocks' | 
| innodb\$1lock\$1timeouts | 锁 | 锁 | db.Locks.innodb\$1lock\$1timeouts | 超时的锁定的总数。 | SELECT COUNT AS innodb\$1lock\$1timeouts FROM INFORMATION\$1SCHEMA.INNODB\$1METRICS WHERE NAME='lock\$1timeouts' | 
| innodb\$1row\$1lock\$1waits | 锁 | 锁 | db.Locks.innodb\$1row\$1lock\$1waits | 导致等待的行锁总数。 | SELECT COUNT AS innodb\$1row\$1lock\$1waits FROM INFORMATION\$1SCHEMA.INNODB\$1METRICS WHERE NAME='lock\$1row\$1lock\$1waits' | 

## 适用于 Amazon RDS for Microsoft SQL Server 的性能详情计数器
<a name="USER_PerfInsights_Counters.SQLServer"></a>

以下数据库计数器可用于 RDS for Microsoft SQL Server 的性能详情。

### 适用于 RDS for Microsoft SQL Server 的本机计数器
<a name="USER_PerfInsights_Counters.SQLServer.Native"></a>

本机指标由数据库引擎定义，而不是由 Amazon RDS 定义。您可以在 Microsoft SQL Server 文档的[使用 SQL Server 对象](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/use-sql-server-objects?view=sql-server-2017)中找到这些本机指标的定义。


| 计数器 | 类型 | 单位 | 指标 | 
| --- | --- | --- | --- | 
| 转发的记录数 | [访问方法](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-access-methods-object?view=sql-server-2017) | 每秒记录数 | db.Access Methods.Forwarded Records | 
| 分页数 | [访问方法](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-access-methods-object?view=sql-server-2017) | 每秒拆分次数 | db.Access Methods.Page Splits | 
| 缓冲区缓存命中率 | [缓冲区管理器](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-manager-object?view=sql-server-2017) | Ratio | db.Buffer Manager.Buffer cache hit ratio | 
| 页生命周期 | [缓冲区管理器](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-manager-object?view=sql-server-2017) | 寿命（以秒为单位） | db.Buffer Manager.Page life expectancy | 
| 页查找次数 | [缓冲区管理器](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-manager-object?view=sql-server-2017) | 每秒查找次数 | db.Buffer Manager.Page lookups | 
| 页读取次数 | [缓冲区管理器](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-manager-object?view=sql-server-2017) | 每秒读取次数 | db.Buffer Manager.Page reads | 
| 页写入次数 | [缓冲区管理器](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-manager-object?view=sql-server-2017) | 每秒写入次数 | db.Buffer Manager.Page writes | 
| 活动事务数 | [数据库](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-databases-object?view=sql-server-2017) | 事务 | db.Databases.Active Transactions (\$1Total) | 
| 刷新的日志字节数 | [ 数据库](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-databases-object?view=sql-server-2017) | 每秒刷新的日志字节数 | db.Databases.Log Bytes Flushed (\$1Total) | 
| 日志刷新等待次数 | [ 数据库](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-databases-object?view=sql-server-2017) | 每秒等待次数 | db.Databases.Log Flush Waits (\$1Total) | 
| 日志刷新次数 | [ 数据库](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-databases-object?view=sql-server-2017) | 每秒刷新次数 | db.Databases.Log Flushes (\$1Total) | 
| 写入事务数 | [ 数据库](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-databases-object?view=sql-server-2017) | 每秒事务数 | db.Databases.Write Transactions (\$1Total) | 
| 阻止的进程数 | [常规统计数据](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-general-statistics-object?view=sql-server-2017) | 阻止的进程数 | db.General Statistics.Processes blocked | 
| 用户连接数 | [常规统计数据](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-general-statistics-object?view=sql-server-2017) | 连接 | db.General Statistics.User Connections | 
| 闩锁等待次数 | [闩锁](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-latches-object?view=sql-server-2017) | 每秒等待次数 | db.Latches.Latch Waits | 
| 死锁数 | [锁](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-locks-object?view=sql-server-2017) | 每秒死锁数 | db.Locks.Number of Deadlocks (\$1Total) | 
| 内存授予挂起 | [内存管理器](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-memory-manager-object?view=sql-server-2017) | 内存授予 | db.Memory Manager.Memory Grants Pending | 
| 批处理请求数 | [SQL 统计数据](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-sql-statistics-object?view=sql-server-2017) | 每秒请求数 | db.SQL Statistics.Batch Requests | 
| SQL 编译 | [SQL 统计数据](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-sql-statistics-object?view=sql-server-2017) | 每秒编译数 | db.SQL Statistics.SQL Compilations | 
| SQL 重新编译 | [SQL 统计数据](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-sql-statistics-object?view=sql-server-2017) | 每秒重新编译数 | db.SQL Statistics.SQL Re-Compilations | 

## Amazon RDS for Oracle 的性能详情计数器
<a name="USER_PerfInsights_Counters.Oracle"></a>

以下数据库计数器可用于 RDS for Oracle 的性能详情。

### 适用于 RDS for Oracle 的本机计数器
<a name="USER_PerfInsights_Counters.Oracle.Native"></a>

本机指标由数据库引擎定义，而不是由 Amazon RDS 定义。您可以在 Oracle 文档中的[统计数据描述](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/refrn/statistics-descriptions-2.html#GUID-2FBC1B7E-9123-41DD-8178-96176260A639)中找到这些本机指标的定义。

**注意**  
对于 `CPU used by this session` 计数器指标，单位已从本机厘秒转换为活动会话以使值更易于使用。例如，“DB Load (数据库负载)”图表中的“CPU send (CPU 发送)”表示 CPU 需求。计数器指标 `CPU used by this session` 表示 Oracle 会话使用的 CPU 量。您可以将“CPU 发送”与 `CPU used by this session` 计数器指标进行比较。当 CPU 需求高于使用的 CPU 时，会话将等待 CPU 时间。


| 计数器 | 类型 | 单位 | 指标 | 
| --- | --- | --- | --- | 
| 此会话使用的 CPU | User | 活动的会话 | db.User.CPU used by this session | 
| SQL\$1Net 与客户端之间的往返 | User | 每秒往返 | db.User.SQL\$1Net roundtrips to/from client | 
| 通过 SQL\$1Net 从客户端收到的字节数 | User | 每秒字节数 | db.User.bytes received via SQL\$1Net from client | 
| 用户提交 | User | 每秒提交数 | db.User.user commits | 
| 累积登录数 | User | 每秒登录数 | db.User.logons cumulative | 
| 用户调用 | User | 每秒调用数 | db.User.user calls | 
| 通过 SQL\$1Net 发送到客户端的字节数 | User | 每秒字节数 | db.User.bytes sent via SQL\$1Net to client | 
| 用户回滚 | User | 每秒回滚数 | db.User.user rollbacks | 
| 重做大小 | Redo | 每秒字节数 | db.Redo.redo size | 
| 分析计数（总计） | SQL | 每秒分析数 | db.SQL.parse count (total) | 
| 分析计数（硬） | SQL | 每秒分析数 | db.SQL.parse count (hard) | 
| 获得的表扫描行数 | SQL | 每秒行数 | db.SQL.table scan rows gotten | 
| 分类（内存） | SQL | 每秒分类数 | db.SQL.sorts (memory) | 
| 分类（磁盘） | SQL | 每秒分类数 | db.SQL.sorts (disk) | 
| 分类（行） | SQL | 每秒分类数 | db.SQL.sorts (rows) | 
| 物理读取字节数 | 缓存 | 每秒字节数 | db.Cache.physical read bytes | 
| 数据库块获取数 | 缓存 | 每秒块数 | db.Cache.db block gets | 
| DBWR 检查点 | 缓存 | 每分钟检查点数 | db.Cache.DBWR checkpoints | 
| 物理读取 | 缓存 | 每秒读取次数 | db.Cache.physical reads | 
| 从缓存进行的一致性获取 | 缓存 | 每秒获取数 | db.Cache.consistent gets from cache | 
| 从缓存进行的数据库块获取数 | 缓存 | 每秒获取数 | db.Cache.db block gets from cache | 
| 一致性获取 | 缓存 | 每秒获取数 | db.Cache.consistent gets | 

## 适用于 Amazon RDS for PostgreSQL 的性能详情计数器
<a name="USER_PerfInsights_Counters.PostgreSQL"></a>

以下数据库计数器可用于 Amazon RDS for PostgreSQL 的性能详情。

**Topics**
+ [Amazon RDS for PostgreSQL 的本机计数器](#USER_PerfInsights_Counters.PostgreSQL.Native)
+ [Amazon RDS for PostgreSQL 的非本机计数器](#USER_PerfInsights_Counters.PostgreSQL.NonNative)

### Amazon RDS for PostgreSQL 的本机计数器
<a name="USER_PerfInsights_Counters.PostgreSQL.Native"></a>

本机指标由数据库引擎定义，而不是由 Amazon RDS 定义。您可以在 PostgreSQL 文档中的[查看统计数据](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-STATS-VIEWS)中找到这些本机指标的定义。


| 计数器 | 类型 | 单位 | 指标 | 
| --- | --- | --- | --- | 
| blks\$1hit | 缓存 | 每秒块数 | db.Cache.blks\$1hit | 
| buffers\$1alloc | 缓存 | 每秒块数 | db.Cache.buffers\$1alloc | 
| buffers\$1checkpoint | 检查点 | 每秒块数 | db.Checkpoint.buffers\$1checkpoint | 
| checkpoint\$1sync\$1time | 检查点 | 每个检查点的毫秒数 | db.Checkpoint.checkpoint\$1sync\$1time | 
| checkpoint\$1write\$1time | 检查点 | 每个检查点的毫秒数 | db.Checkpoint.checkpoint\$1write\$1time | 
| checkpoints\$1req | 检查点 | 每分钟检查点数 | db.Checkpoint.checkpoints\$1req | 
| checkpoints\$1timed | 检查点 | 每分钟检查点数 | db.Checkpoint.checkpoints\$1timed | 
| maxwritten\$1clean | 检查点 | 每分钟 Bgwriter 清理停止数  | db.Checkpoint.maxwritten\$1clean | 
| deadlocks | 并发 | 每分钟死锁数 | db.Concurrency.deadlocks | 
| blk\$1read\$1time | I/O | 毫秒 | db.IO.blk\$1read\$1time | 
| blks\$1read | I/O | 每秒块数 | db.IO.blks\$1read | 
| buffers\$1backend | I/O | 每秒块数 | db.IO.buffers\$1backend | 
| buffers\$1backend\$1fsync | I/O | 每秒块数 | db.IO.buffers\$1backend\$1fsync | 
| buffers\$1clean | I/O | 每秒块数 | db.IO.buffers\$1clean | 
| tup\$1deleted | SQL | 每秒元组数 | db.SQL.tup\$1deleted | 
| tup\$1fetched | SQL | 每秒元组数 | db.SQL.tup\$1fetched | 
| tup\$1inserted | SQL | 每秒元组数 | db.SQL.tup\$1inserted | 
| tup\$1returned | SQL | 每秒元组数 | db.SQL.tup\$1returned | 
| tup\$1updated | SQL | 每秒元组数 | db.SQL.tup\$1updated | 
| temp\$1bytes | 临时文件 | 每秒字节数 | db.Temp.temp\$1bytes | 
| temp\$1files | 临时文件 | 每分钟文件数 | db.Temp.temp\$1files | 
| xact\$1commit | 事务 | 每秒提交数 | db.Transactions.xact\$1commit | 
| xact\$1rollback | 事务 | 每秒回滚数 | db.Transactions.xact\$1rollback | 
| numbackends | User | 连接 | db.User.numbackends | 
| archived\$1count | 预写日志 (WAL) | 每分钟文件数 | db.WAL.archived\$1count | 

### Amazon RDS for PostgreSQL 的非本机计数器
<a name="USER_PerfInsights_Counters.PostgreSQL.NonNative"></a>

非本机计数器指标是 Amazon RDS 定义的计数器。非本机指标可以是您使用特定查询获取的指标。非本机指标还可以是派生指标，使用两个或更多个本机计数器来计算比率、命中率或延迟。


| 计数器 | 类型 | 单位 | 指标 | 描述 | 定义 | 
| --- | --- | --- | --- | --- | --- | 
| checkpoint\$1sync\$1latency | 检查点 | db.Checkpoint.checkpoint\$1sync\$1latency |  | 在文件同步到磁盘时，检查点处理部分已花费的总时间量。 | checkpoint\$1sync\$1time / (checkpoints\$1timed \$1 checkpoints\$1req) | 
| checkpoint\$1write\$1latency | 检查点 | db.Checkpoint.checkpoint\$1write\$1latency | 在文件写入磁盘时，检查点处理部分已花费的总时间量。 | checkpoint\$1write\$1time / (checkpoints\$1timed \$1 checkpoints\$1req) | 
| read\$1latency | I/O | db.IO.read\$1latency | 此实例中的后端读取数据文件块所花费的时间。 | blk\$1read\$1time / blks\$1read | 
| idle\$1in\$1transaction\$1aborted\$1count | 状态 | 会话 | db.state.idle\$1in\$1transaction\$1aborted\$1count | 处于 idle in transaction (aborted) 状态的会话数量。 | 不适用 | 
| idle\$1in\$1transaction\$1count | 州 | 会话 | db.state.idle\$1in\$1transaction\$1count | 处于 idle in transaction 状态的会话数量。 | 不适用 | 
| idle\$1in\$1transaction\$1max\$1time | 州 | 秒 | db.state.idle\$1in\$1transaction\$1max\$1time | idle in transaction 状态下运行时间最长的事务的持续时间（以秒为单位）。 | 不适用 | 
| active\$1transactions | 事务 | 事务 | db.Transactions.active\$1transactions | 活动事务的数量。 | 不适用 | 
| blocked\$1transactions | 事务 | 事务 | db.Transactions.blocked\$1transactions | 阻止的事务的数量。 | 不适用 | 
| oldest\$1active\$1logical\$1replication\$1slot\$1xid\$1age | 事务 | db.Transactions.oldest\$1active\$1logical\$1replication\$1slot\$1xid\$1age | 活动逻辑复制插槽中最早事务的期限。 有关更多信息，请参阅 [逻辑复制槽](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Logical_replication_slot)。 | – | 
| oldest\$1inactive\$1logical\$1replication\$1slot\$1xid\$1age | 事务 | db.Transactions.oldest\$1inactive\$1logical\$1replication\$1slot\$1xid\$1age | 非活动逻辑复制插槽中最早事务的期限。 有关更多信息，请参阅 [逻辑复制槽](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Logical_replication_slot)。 | – | 
| oldest\$1prepared\$1transaction\$1xid\$1age | 事务 | db.Transactions.oldest\$1prepared\$1transaction\$1xid\$1age | 最早的准备好的事务的期限。 有关更多信息，请参阅 [准备好的事务](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Prepared_transaction)。 | – | 
| oldest\$1running\$1transaction\$1xid\$1age | 事务 | db.Transactions.oldest\$1running\$1transaction\$1xid\$1age | 最早的运行事务的期限。 有关更多信息，请参阅[活动语句](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Active_statement)以了解最早的运行活动事务，以及参阅[事务中空闲](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Idle_in_transaction)以了解最早的运行事务中的空闲。 | – | 
| oldest\$1hot\$1standby\$1feedback\$1xid\$1age | 事务 | db.Transactions.oldest\$1hot\$1standby\$1feedback\$1xid\$1age | 启用了 `hot_standby_feedback` 的只读副本上最早的运行事务的期限。 有关更多信息，请参阅 [只读副本](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Read_replicas)。 | – | 
| max\$1used\$1xact\$1ids | 事务 | 事务 | db.Transactions.max\$1used\$1xact\$1ids | 尚未清空的事务数量。 | 不适用 | 
| max\$1connections | 用户 | Connections | db.User.max\$1connections | max\$1connections 参数中配置的数据库实例允许的最大连接数。 | 不适用 | 
| archive\$1failed\$1count | WAL | 每分钟文件数 | db.WAL.archive\$1failed\$1count | 尝试存档 WAL 文件的失败次数（以每分钟文件数为单位）。 | 不适用 | 

# Performance Insights 的 SQL 统计数据
<a name="sql-statistics"></a>

*SQL 统计数据*是由 Performance Insights 收集的关于 SQL 查询的性能相关指标。Performance Insights 收集查询运行的每一秒的统计数据，以及每次 SQL 调用的统计数据。SQL 统计数据是所选时间范围内的平均值。

SQL 摘要 是具有给定模式但不一定具有相同文本值的所有查询的组合。摘要用问号替换文本值。例如，`SELECT * FROM emp WHERE lname= ?`。此摘要可能由以下子查询组成：

```
SELECT * FROM emp WHERE lname = 'Sanchez'
SELECT * FROM emp WHERE lname = 'Olagappan'
SELECT * FROM emp WHERE lname = 'Wu'
```

所有引擎都支持摘要查询的 SQL 统计数据。

有关此功能的区域、数据库引擎和实例类支持信息，请参阅[支持性能详情功能的 Amazon RDS 数据库引擎、区域和实例类](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport)

**Topics**
+ [MariaDB 和 MySQL 的 SQL 统计数据](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.md)
+ [Amazon RDS for Oracle 的 SQL 统计数据](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.md)
+ [Amazon RDS for SQL Server 的 SQL 统计数据](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.md)
+ [RDS PostgreSQL 的 SQL 统计数据](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.md)

# MariaDB 和 MySQL 的 SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL"></a>

MariaDB 和 MySQL 仅在摘要级别收集 SQL 统计信息。语句级别没有显示任何统计数据。

**Topics**
+ [MariaDB 和 MySQL 的摘要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation)
+ [MariaDB 和 MySQL 的每秒统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.per-second)
+ [MariaDB 和 MySQL 的每次调用统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation.per-call)
+ [MariaDB 和 MySQL 的主要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.primary)

## MariaDB 和 MySQL 的摘要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation"></a>

性能详情从 `events_statements_summary_by_digest` 表中收集 SQL 摘要统计数据。`events_statements_summary_by_digest` 表由您的数据库管理。

此摘要表不提供移出策略。当表已满时，AWS 管理控制台 将显示以下消息：

```
Performance Insights is unable to collect SQL Digest statistics on new queries because the table events_statements_summary_by_digest is full. 
Please truncate events_statements_summary_by_digest table to clear the issue. Check the User Guide for more details.
```

在这种情况下，MariaDB 和 MySQL 不会 跟踪 SQL 查询。为了解决此问题，性能详情会在满足以下两个条件时自动截取摘要表：
+ 表已满。
+ 性能详情会自动管理 Performance Schema。

  对于自动管理，`performance_schema` 参数必须设置为 `0`，**Source (源)** 不应设置为 `user`。如果性能详情没有自动管理 Performance Schema，请参阅 [Amazon RDS for MariaDB 或 Amazon RDS for MySQL 上性能详情的性能架构概述](USER_PerfInsights.EnableMySQL.md)。

在 AWS CLI 中，检查参数值的来源，方法是运行 [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) 命令。

## MariaDB 和 MySQL 的每秒统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.per-second"></a>

以下 SQL 统计数据适用于 MariaDB 和 MySQL 数据库实例。


| 指标 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.count\$1star\$1per\$1sec | 每秒调用数 | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait\$1per\$1sec | 每秒平均延迟（以毫秒为单位） | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join\$1per\$1sec | 选择每秒完全联接数 | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check\$1per\$1sec | 选择每秒范围检查数 | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan\$1per\$1sec | 选择每秒扫描数 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes\$1per\$1sec | 对每秒合并传递数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan\$1per\$1sec | 对每秒对扫描数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range\$1per\$1sec | 对每秒范围数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows\$1per\$1sec | 对每秒行数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected\$1per\$1sec | 每秒受影响的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined\$1per\$1sec | 每秒检查的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent\$1per\$1sec | 每秒发送的行数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables\$1per\$1sec | 每秒创建的临时磁盘表数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables\$1per\$1sec | 每秒创建的临时表数 | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time\$1per\$1sec | 每秒锁定时间（以毫秒为单位） | 

## MariaDB 和 MySQL 的每次调用统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation.per-call"></a>

以下指标提供了 SQL 语句的每次调用统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait\$1per\$1call | 每个调用的平均延迟（以毫秒为单位）  | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join\$1per\$1call | 选择每次调用完全联接数 | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check\$1per\$1call | 选择每次调用范围检查数 | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan\$1per\$1call | 选择每次调用扫描数 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes\$1per\$1call | 对每次调用合并传递数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan\$1per\$1call | 对每次调用扫描数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range\$1per\$1call | 对每次调用范围数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows\$1per\$1call | 对每次调用行数进行排序 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected\$1per\$1call | 每次调用受影响的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined\$1per\$1call | 每次调用检查的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent\$1per\$1call | 每次调用发送的行数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables\$1per\$1call | 每次调用创建的临时磁盘表数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables\$1per\$1call | 每次调用创建的临时表数 | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time\$1per\$1call | 每个调用的锁定时间（以毫秒为单位） | 

## MariaDB 和 MySQL 的主要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.primary"></a>

以下 SQL 统计数据适用于 MariaDB 和 MySQL 数据库实例。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.count\$1star | Calls | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait | 等待时间（以毫秒为单位） | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join | 选择完全联接 | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check | 选择范围检查 | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan | 选择扫描 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes | 对合并传递进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan | 对扫描进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range | 对范围进行排序 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows | 排序行 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected | 受影响的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined | 检查的行数 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent | 发送的行数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables | 创建的临时磁盘表数 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables | 创建的临时表数 | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time | 锁定时间（以毫秒为单位） | 

# Amazon RDS for Oracle 的 SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle"></a>

Amazon RDS for Oracle 收集语句和摘要级别的 SQL 统计信息。在语句级别，ID 列表示 `V$SQL.SQL_ID` 的值。在摘要级别，ID 列显示 `V$SQL.FORCE_MATCHING_SIGNATURE` 的值。

如果在摘要级别，ID 为 `0`，则 Oracle 数据库已确定此语句不适合重复使用。在这种情况下，子 SQL 语句可能属于不同的摘要。不过，这些语句都将分组在第一个收集到的 SQL 语句的 `digest_text` 项下。

**Topics**
+ [Oracle 的每秒统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-second)
+ [Oracle 的每次调用统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-call)
+ [Oracle 的主要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.primary)

## Oracle 的每秒统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-second"></a>

以下指标提供了 Oracle SQL 查询的每秒统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.executions\$1per\$1sec | 每秒执行次数 | 
| db.sql.stats.elapsed\$1time\$1per\$1sec | 平均活动执行次数 (AAE) | 
| db.sql.stats.rows\$1processed\$1per\$1sec | 每秒处理的行数 | 
| db.sql.stats.buffer\$1gets\$1per\$1sec | 每秒缓冲区获取数 | 
| db.sql.stats.physical\$1read\$1requests\$1per\$1sec | 每秒物理读取次数 | 
| db.sql.stats.physical\$1write\$1requests\$1per\$1sec | 每秒物理写入次数 | 
| db.sql.stats.total\$1sharable\$1mem\$1per\$1sec | 每秒总可共享内存（以字节为单位）  | 
| db.sql.stats.cpu\$1time\$1per\$1sec | 每秒 CPU 时间（以毫秒为单位） | 

以下指标提供了 Oracle SQL 摘要查询的每秒统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.executions\$1per\$1sec | 每秒执行次数 | 
| db.sql\$1tokenized.stats.elapsed\$1time\$1per\$1sec | 平均活动执行次数 (AAE) | 
| db.sql\$1tokenized.stats.rows\$1processed\$1per\$1sec | 每秒处理的行数 | 
| db.sql\$1tokenized.stats.buffer\$1gets\$1per\$1sec | 每秒缓冲区获取数 | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests\$1per\$1sec | 每秒物理读取次数 | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests\$1per\$1sec | 每秒物理写入次数 | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem\$1per\$1sec | 每秒总可共享内存（以字节为单位）  | 
| db.sql\$1tokenized.stats.cpu\$1time\$1per\$1sec | 每秒 CPU 时间（以毫秒为单位） | 

## Oracle 的每次调用统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-call"></a>

以下指标提供了 Oracle SQL 语句的每次调用统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.elapsed\$1time\$1per\$1exec | 每次执行所用的时间（以毫秒为单位）  | 
| db.sql.stats.rows\$1processed\$1per\$1exec | 每次执行处理的行数 | 
| db.sql.stats.buffer\$1gets\$1per\$1exec | 每次执行的缓冲区获取数 | 
| db.sql.stats.physical\$1read\$1requests\$1per\$1exec | 每次执行的物理读取次数 | 
| db.sql.stats.physical\$1write\$1requests\$1per\$1exec | 每次执行的物理写入次数 | 
| db.sql.stats.total\$1sharable\$1mem\$1per\$1exec | 每次执行的总可共享内存（以字节为单位） | 
| db.sql.stats.cpu\$1time\$1per\$1exec | 每次执行的 CPU 时间（以毫秒为单位） | 

以下指标提供了 Oracle SQL 摘要查询的每次调用统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.elapsed\$1time\$1per\$1exec | 每次执行所用的时间（以毫秒为单位）  | 
| db.sql\$1tokenized.stats.rows\$1processed\$1per\$1exec | 每次执行处理的行数 | 
| db.sql\$1tokenized.stats.buffer\$1gets\$1per\$1exec | 每次执行的缓冲区获取数 | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests\$1per\$1exec | 每次执行的物理读取次数 | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests\$1per\$1exec | 每次执行的物理写入次数 | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem\$1per\$1exec | 每次执行的总可共享内存（以字节为单位） | 
| db.sql\$1tokenized.stats.cpu\$1time\$1per\$1exec | 每次执行的 CPU 时间（以毫秒为单位） | 

## Oracle 的主要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.primary"></a>

以下指标提供了 Oracle SQL 查询的主要统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.executions | 执行次数  | 
| db.sql.stats.elapsed\$1time | 经过的时间（以毫秒为单位） | 
| db.sql.stats.rows\$1processed | 处理的行数  | 
| db.sql.stats.buffer\$1gets | 缓冲区获得次数  | 
| db.sql.stats.physical\$1read\$1requests | 物理读取  | 
| db.sql.stats.physical\$1write\$1requests | 物理写入次数  | 
| db.sql.stats.total\$1sharable\$1mem | 总可共享内存（以字节为单位）  | 
| db.sql.stats.cpu\$1time | CPU 时间（以毫秒为单位） | 

以下指标提供了 Oracle SQL 摘要查询的主要统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.executions | 执行次数 | 
| db.sql\$1tokenized.stats.elapsed\$1time | 经过的时间（以毫秒为单位） | 
| db.sql\$1tokenized.stats.rows\$1processed | 处理的行数 | 
| db.sql\$1tokenized.stats.buffer\$1gets | 缓冲区获得次数 | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests | 物理读取 | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests | 物理写入次数 | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem | 总可共享内存（以字节为单位）  | 
| db.sql\$1tokenized.stats.cpu\$1time | CPU 时间（以毫秒为单位） | 

# Amazon RDS for SQL Server 的 SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer"></a>

Amazon RDS for SQL Server 收集语句和摘要级别的 SQL 统计信息。在语句级别，ID 列表示 `sql_handle` 的值。在摘要级别，ID 列显示 `query_hash` 的值。

对于一些语句，SQL Server 会为 `query_hash` 返回 NULL 值。例如，ALTER INDEX、CHECKPOINT、UPDATE STATISTICS、COMMIT TRANSACTION、FETCH NEXT FROM Cursor 和一些 INSERT 语句、SELECT @<variable>、条件语句和可执行存储过程。在这种情况下，`sql_handle` 值显示为该语句的摘要级别的 ID。

**Topics**
+ [SQL Server 的每秒统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-second)
+ [SQL Server 的每次调用统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-call)
+ [SQL Server 的主要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.primary)

## SQL Server 的每秒统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-second"></a>

以下指标提供了 SQL Server SQL 查询的每秒统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.execution\$1count\$1per\$1sec | 每秒执行次数 | 
| db.sql.stats.total\$1elapsed\$1time\$1per\$1sec | 每秒总用时 | 
| db.sql.stats.total\$1rows\$1per\$1sec | 每秒处理的总行数 | 
| db.sql.stats.total\$1logical\$1reads\$1per\$1sec | 每秒逻辑读取总数 | 
| db.sql.stats.total\$1logical\$1writes\$1per\$1sec | 每秒逻辑写入总数 | 
| db.sql.stats.total\$1physical\$1reads\$1per\$1sec | 每秒物理读取总数 | 
| db.sql.stats.total\$1worker\$1time\$1per\$1sec | CPU 总时间（以毫秒为单位） | 

以下指标提供了 SQL Server SQL 摘要查询的每秒统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.execution\$1count\$1per\$1sec | 每秒执行次数 | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time\$1per\$1sec | 每秒总用时 | 
| db.sql\$1tokenized.stats.total\$1rows\$1per\$1sec | 每秒处理的总行数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads\$1per\$1sec | 每秒逻辑读取总数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes\$1per\$1sec | 每秒逻辑写入总数 | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads\$1per\$1sec | 每秒物理读取总数 | 
| db.sql\$1tokenized.stats.total\$1worker\$1time\$1per\$1sec | CPU 总时间（以毫秒为单位） | 

## SQL Server 的每次调用统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-call"></a>

以下指标提供了 SQL Server SQL 语句的每次调用统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.total\$1elapsed\$1time\$1per\$1call | 每次执行的总用时（以毫秒为单位） | 
| db.sql.stats.total\$1rows\$1per\$1call | 每次执行处理的总行数 | 
| db.sql.stats.total\$1logical\$1reads\$1per\$1call | 每次执行的逻辑读取总数 | 
| db.sql.stats.total\$1logical\$1writes\$1per\$1call | 每次执行的逻辑写入总数 | 
| db.sql.stats.total\$1physical\$1reads\$1per\$1call | 每次执行的物理读取总数 | 
| db.sql.stats.total\$1worker\$1time\$1per\$1call | 每次执行的总 CPU 时间（以毫秒为单位） | 

以下指标提供了 SQL Server SQL 摘要查询的每次调用统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time\$1per\$1call | 每次执行的总用时 | 
| db.sql\$1tokenized.stats.total\$1rows\$1per\$1call | 每次执行处理的总行数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads\$1per\$1call | 每次执行的逻辑读取总数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes\$1per\$1call | 每次执行的逻辑写入总数 | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads\$1per\$1call | 每次执行的物理读取总数  | 
| db.sql\$1tokenized.stats.total\$1worker\$1time\$1per\$1call | 每次执行的总 CPU 时间（以毫秒为单位） | 

## SQL Server 的主要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.primary"></a>

以下指标提供了 SQL Server SQL 查询的主要统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql.stats.execution\$1count | 执行次数 | 
| db.sql.stats.total\$1elapsed\$1time | 经过的总时间（以毫秒为单位） | 
| db.sql.stats.total\$1rows | 处理的总行数 | 
| db.sql.stats.total\$1logical\$1reads | 逻辑读取总次数 | 
| db.sql.stats.total\$1logical\$1writes | 逻辑写入总次数 | 
| db.sql.stats.total\$1physical\$1reads | 物理读取总次数 | 
| db.sql.stats.total\$1worker\$1time | CPU 总时间（以毫秒为单位） | 

以下指标提供了 SQL Server SQL 摘要查询的主要统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.execution\$1count | 执行次数 | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time | 经过的总时间（以毫秒为单位） | 
| db.sql\$1tokenized.stats.total\$1rows | 处理的总行数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads | 逻辑读取总次数 | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes | 逻辑写入总次数 | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads | 物理读取总次数 | 
| db.sql\$1tokenized.stats.total\$1worker\$1time | CPU 总时间（以毫秒为单位） | 

# RDS PostgreSQL 的 SQL 统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL"></a>

对于每个 SQL 调用和查询运行的每一秒，性能详情都会收集 SQL 统计数据。RDS for PostgreSQL 仅在摘要级别收集 SQL 统计数据。语句级别不显示任何统计数据。

接下来，您可以了解有关 RDS for PostgreSQL 的摘要级别统计数据的信息。

**Topics**
+ [RDS PostgreSQL 的摘要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.digest)
+ [RDS PostgreSQL 的每秒摘要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-second)
+ [RDS PostgreSQL 的每次调用摘要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-call)
+ [RDS PostgreSQL 的主要统计数据](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.primary)

## RDS PostgreSQL 的摘要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.digest"></a>

要查看 SQL 摘要统计数据，RDS PostgreSQL 必须加载 `pg_stat_statements` 库。对于与 PostgreSQL 11 或更高版本兼容的 PostgreSQL 数据库实例，数据库默认加载此库。对于与 PostgreSQL 10 或更低版本兼容的 PostgreSQL 数据库实例，请手动启用此库。要手动启用该库，请在与数据库实例关联的数据库参数组中的 `pg_stat_statements` 中添加 `shared_preload_libraries`。然后重启数据库实例。有关更多信息，请参阅“[Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)”。

**注意**  
性能详情只能收集 `pg_stat_activity` 中未被截断的查询的统计数据。默认情况下，PostgreSQL 数据库会截断长度超过 1,024 字节的查询。要增加查询大小，请更改与数据库实例关联的数据库参数组中的 `track_activity_query_size` 参数。更改此参数后，需要重新启动数据库实例。

## RDS PostgreSQL 的每秒摘要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-second"></a>

以下 SQL 摘要统计数据可用于 PostgreSQL 数据库实例。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.calls\$1per\$1sec | 每秒调用数 | 
| db.sql\$1tokenized.stats.rows\$1per\$1sec | 每秒行数 | 
| db.sql\$1tokenized.stats.total\$1time\$1per\$1sec | 每秒平均活动执行次数 (AAE) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit\$1per\$1sec | 每秒块命中次数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read\$1per\$1sec | 每秒块读取次数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied\$1per\$1sec | 每秒损坏的块数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written\$1per\$1sec | 每秒块写入次数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit\$1per\$1sec | 每秒本地块命中次数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1read\$1per\$1sec | 每秒本地块读取次数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied\$1per\$1sec | 每秒弄脏的本地块数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1written\$1per\$1sec | 每秒本地块写入次数 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written\$1per\$1sec | 每秒临时写入次数 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read\$1per\$1sec | 每秒临时读取次数 | 
| db.sql\$1tokenized.stats.blk\$1read\$1time\$1per\$1sec | 每秒平均并发读取次数 | 
| db.sql\$1tokenized.stats.blk\$1write\$1time\$1per\$1sec | 每秒平均并发写入次数 | 

## RDS PostgreSQL 的每次调用摘要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-call"></a>

以下指标提供了 SQL 语句的每次调用统计数据。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.rows\$1per\$1call | 每个调用的行数 | 
| db.sql\$1tokenized.stats.avg\$1latency\$1per\$1call | 每个调用的平均延迟（以毫秒为单位） | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit\$1per\$1call | 每个调用的块命中次数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read\$1per\$1call | 每个调用的块读取次数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written\$1per\$1call | 每个调用的块写入次数 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied\$1per\$1call | 每个调用损坏的块数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit\$1per\$1call | 每个调用的本地块命中次数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1read\$1per\$1call | 每个调用的本地块读取次数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied\$1per\$1call | 每个调用弄脏的本地块数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1written\$1per\$1call | 每个调用的本地块写入次数 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written\$1per\$1call | 每个调用的临时块写入次数 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read\$1per\$1call | 每个调用的临时块读取次数 | 
| db.sql\$1tokenized.stats.blk\$1read\$1time\$1per\$1call | 每个调用的读取时间（以毫秒为单位） | 
| db.sql\$1tokenized.stats.blk\$1write\$1time\$1per\$1call | 每个调用的写入时间（以毫秒为单位） | 

## RDS PostgreSQL 的主要统计数据
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.primary"></a>

以下 SQL 统计数据可用于 PostgreSQL 数据库实例。


| 指标 | 单位 | 
| --- | --- | 
| db.sql\$1tokenized.stats.calls | Calls  | 
| db.sql\$1tokenized.stats.rows | 行  | 
| db.sql\$1tokenized.stats.total\$1time | 总时间（以毫秒为单位） | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit | 块命中次数  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read | 块读取次数  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied | 弄脏的块数  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written | 块写入次数  | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit | 本地块命中次数  | 
| db.sql\$1tokenized.stats.local\$1blks\$1read | 本地块读取次数  | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied | 弄脏的本地块数 | 
| db.sql\$1tokenized.stats.local\$1blks\$1written | 本地块写入次数  | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written | 临时写入次数  | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read | 临时读取次数  | 
| db.sql\$1tokenized.stats.blk\$1read\$1time | 平均并发读取次数（以毫秒为单位） | 
| db.sql\$1tokenized.stats.blk\$1write\$1time | 平均并发写入次数（以毫秒为单位） | 

有关这些指标的更多信息，请参阅 PostgreSQL 文档中的 [pg\$1stat\$1statements](https://www.postgresql.org/docs/current/pgstatstatements.html)。

# 增强监控中的操作系统指标
<a name="USER_Monitoring-Available-OS-Metrics"></a>

Amazon RDS 为数据库实例运行于的操作系统 (OS) 实时提供指标。RDS 将增强监控中的指标传输到您的 Amazon CloudWatch Logs 账户。下列各表列出了使用 Amazon CloudWatch Logs 可获得的操作系统指标。



**Topics**
+ [Db2、MariaDB、MySQL、Oracle 和 PostgreSQL 的操作系统指标](#USER_Monitoring-Available-OS-Metrics-RDS)
+ [Microsoft SQL Server 的操作系统指标](#USER_Monitoring-Available-OS-Metrics-RDS.SQLServer)

## Db2、MariaDB、MySQL、Oracle 和 PostgreSQL 的操作系统指标
<a name="USER_Monitoring-Available-OS-Metrics-RDS"></a>

RDS 收集 `rdsdbdata` 以及操作系统中存在的附加存储卷的磁盘指标。要在 CloudWatch Logs 中查看操作系统指标，请参阅[使用 CloudWatch Logs 查看操作系统指标](USER_Monitoring.OS.CloudWatchLogs.md)。

<a name="cloudwatch-os-metrics"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_Monitoring-Available-OS-Metrics.html)

## Microsoft SQL Server 的操作系统指标
<a name="USER_Monitoring-Available-OS-Metrics-RDS.SQLServer"></a>

RDS 收集 `rdsdbdata` 以及操作系统中存在的附加存储卷的磁盘指标。要在 CloudWatch Logs 中查看操作系统指标，请参阅[使用 CloudWatch Logs 查看操作系统指标](USER_Monitoring.OS.CloudWatchLogs.md)。

<a name="cloudwatch-sql-server-metrics"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_Monitoring-Available-OS-Metrics.html)