Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用 Amazon RDS Performance Insights

Amazon RDS Performance Insights 用于监控您的 Amazon RDS 数据库实例负载,使您可以分析数据库性能和排查数据库性能问题。Amazon RDS Performance Insights 当前只能与 Amazon Aurora for PostgreSQL 和 Amazon RDS for PostgreSQL 版本 10 一起使用。请注意,db.t2 实例类不支持 Performance Insights。

Performance Insights 在现有 Amazon RDS 监控功能的基础上进行了扩展,以便通过示意图展示您的数据库的性能并帮助您分析影响性能的任何问题。利用 Performance Insights 控制面板,您可以可视化数据库负载并按等待状态、SQL 语句、主机或用户来筛选负载。对于 Aurora PostgreSQL 和 RDS PostgreSQL 数据库引擎的控制台创建向导,默认情况下,Performance Insights 处于启用状态。如果数据库实例上有多个数据库,则将为数据库实例聚合所有数据库的性能数据。

Performance Insights 的核心指标为数据库负载,它表示数据库引擎的活动会话的平均数量。活动会话 是已将作业提交到数据库引擎并且正在等待数据库引擎响应的连接。例如,如果您将 SQL 查询提交到数据库引擎,数据库会话在数据库引擎处理该查询时将处于活动状态。

通过结合使用数据库负载等待事件 数据,您可以获取活动会话的状态的完整概况。等待事件因数据库引擎而异。有关所有 PostgreSQL 等待事件的完整列表,请参阅 PostgreSQL 等待事件。有关 Aurora PostgreSQL 的最常用等待事件的列表,请参阅 Amazon Aurora PostgreSQL 事件

然后,收集会话信息并聚合,以 Average Active Sessions 图表的形式将信息显示在控制面板中。Average Active Sessions 图表将 Max CPU 值显示为一条线,方便您观察活动会话是否超出此值。Max CPU 值由数据库实例的 vCPU (虚拟 CPU) 内核数决定。

如果您发现 Average Active Sessions 图表中的负载经常高于 Max CPU 线并且主要等待状态为 CPU,则表示系统 CPU 过载。在这些情况下,您可能需要限制与实例的连接数,优化具有高 CPU 负载的任何 SQL 查询,或考虑使用更大的实例类。如果始终有大量实例处于任何等待状态,则表示可能存在您应解决的瓶颈或资源争用问题,即使负载未超过 Max CPU 线也是如此。

可在以下视频中找到 Performance Insights 的概述。

启用 Performance Insights

要使用 Performance Insights,则必须在数据库实例中启用它。

AWS 管理控制台

在创建新数据库实例时,可以使用控制台启用 Performance Insights。您也可以修改数据库实例来启用 Performance Insights。

在创建数据库实例时通过控制台启用 Performance Insights

在创建新数据库实例时,当您在 Performance Insights 部分选择 Enable Performance Insights (启用 Performance Insights) 时,即会启用 Performance Insights。

要创建数据库实例,请按照创建 Amazon RDS 数据库实例中用于您的数据库引擎的说明操作。下图显示了 Performance Insights 部分。

 在创建数据库实例时通过控制台启用 Performance Insights

在选择 Enable Performance Insights (启用 Performance Insights) 时,您有以下选项:

  • Retention (保留) – 保留 Performance Insights 数据的时间。选择 7 天(默认值)或 2 年。

  • 主密钥 – 指定您的 AWS Key Management Service (AWS KMS) 密钥。Performance Insights 使用您的 AWS KMS 密钥来加密所有潜在的敏感数据。正在传输的数据和静态数据都会被加密。有关更多信息,请参阅 加密 Amazon RDS 资源

在修改数据库实例时通过控制台启用 Performance Insights

您也可以修改数据库实例以使用控制台启用 Performance Insights。

使用控制台为数据库实例启用 Performance Insights

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 选择 Instances

  3. 选择要修改的数据库实例,然后在 Instance actions (实例操作)中选择 Modify (修改)

  4. Performance Insights 部分中选择 Performance Insights

    在选择 Enable Performance Insights (启用 Performance Insights) 时,您有以下选项:

    • Retention (保留) – 保留 Performance Insights 数据的时间。选择 7 天(默认值)或 2 年。

    • 主密钥 – 指定您的 AWS Key Management Service (AWS KMS) 密钥。Performance Insights 使用您的 AWS KMS 密钥来加密所有潜在的敏感数据。正在传输的数据和静态数据都会被加密。有关更多信息,请参阅 加密 Amazon RDS 资源

  5. 选择 Continue (继续)

  6. 对于修改计划,请选择下列选项之一:

    • Apply during the next scheduled maintenance window (在下一个计划的维护时段应用) – 一直等到下一个维护时段才应用 Performance Insights 修改。

    • Apply immediately (立即应用) – 尽快应用 Performance Insights 修改。

  7. 选择 Modify instance (修改实例)

CLI

在使用 create-db-instance AWS CLI 命令创建新的数据库实例时,如果指定 --enable-performance-insights,则会启用 Performance Insights。

您还可以使用以下 AWS CLI 命令指定 --enable-performance-insights 值:

以下过程介绍如何使用 AWS CLI 为数据库实例启用 Performance Insights。

使用 AWS CLI 为数据库实例启用 Performance Insights

  • 调用 modify-db-instance AWS CLI 命令并提供以下值:

    • --db-instance-identifier – 数据库实例的名称。

    • --enable-performance-insights

    以下示例为 sample-db-instance 启用 Performance Insights。

    针对 Linux、OS X 或 Unix:

    aws rds modify-db-instance \ --db-instance-identifier sample-db-instance \ --enable-performance-insights

    对于 Windows:

    aws rds modify-db-instance ^ --db-instance-identifier sample-db-instance ^ --enable-performance-insights

在启用 Performance Insights 时,可以通过 --performance-insights-retention-period 选项指定 Performance Insights 数据的保留时间,以天为单位。有效值为 7(默认值)和 731(2 年)。

以下示例为 sample-db-instance 启用 Performance Insights 并指定 Performance Insights 数据将保留两年。

针对 Linux、OS X 或 Unix:

aws rds modify-db-instance \ --db-instance-identifier sample-db-instance \ --enable-performance-insights \ --performance-insights-retention-period 731

对于 Windows:

aws rds modify-db-instance ^ --db-instance-identifier sample-db-instance ^ --enable-performance-insights ^ --performance-insights-retention-period 731
API

在使用 CreateDBInstance Amazon RDS API 操作创建新数据库实例时,如果将 EnablePerformanceInsights 设置为 True,则会启用性能架构。

您还可以使用以下 API 操作指定 EnablePerformanceInsights 值:

在启用 Performance Insights 时,可以通过 PerformanceInsightsRetentionPeriod 参数指定 Performance Insights 数据的保留时间,以天为单位。有效值为 7(默认值)和 731(2 年)。

使用 Performance Insights 控制面板

Performance Insights 控制面板包含帮助您分析和排查性能问题的数据库性能信息。在主控制面板页面上,您可以查看有关数据库负载的信息,然后深入了解特定等待状态、SQL 查询、主机或用户的信息。

打开 Performance Insights 控制面板

要查看 Performance Insights 控制面板,请使用以下过程。

在 AWS 管理控制台中查看 Performance Insights 控制面板

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

  2. 在导航窗格中,选择 Performance Insights

  3. 选择一个数据库实例。将为该实例显示 Performance Insights 控制面板。

    您还可以通过选择实例列表中的 Current Activity 小部件来访问控制面板。

     筛选指标
     筛选指标

默认情况下,Performance Insights 控制面板将显示过去 60 分钟的数据。您可以修改它以显示过去 5 分钟、60 分钟、6 小时或 24 小时的数据。

 筛选指标

Performance Insights 控制面板组件

该控制面板分为两个部分:

  1. Average Active Sessions 图表 - 显示数据库负载与由 Max CPU 线表示的数据库实例容量的比较情况。

  2. Top load items 表 - 显示导致数据库负载的主要项目。

“Average Active Sessions”图表

Average Active Sessions 图表显示了数据库负载与由 Max CPU 线表示的数据库实例容量的比较情况。默认情况下,负载显示为按等待状态分组的活动会话。您还可选择改为将负载显示为按 SQL 查询、主机或用户分组的活动会话。

 筛选指标

要在图例中查看任何项目在选定时间段内的详细信息,您可将鼠标悬停在 Average Active Sessions 图表的该项目上。

 筛选指标

“Top Load Items”表

Top Load Items 表显示导致数据库负载的主要项。默认情况下,将显示导致数据库负载的主要 SQL 查询。这些查询以结构上相似但可能具有不同参数的多个实际查询的摘要形式显示。您可以改为选择显示主要等待状态、主机或用户。

 筛选指标

与每个主要负载项目关联的数据库负载的百分比将显示在 DB Load by Waits 列中。此列按当前在 Average Active Sessions 图表中选择的分组方式反映该项目的负载。举例而言,假设 Average Active Sessions 图表按主机分组,并且您正在查看“Top Load Items”表中的 SQL 查询。在这种情况下,DB Load by Waits 栏将反映该查询在相关主机上表示的负载,此处它采用颜色编码,映射到该主机在 Average Active Sessions 图表中的表示形式。

再举一个例子,假设 Average Active Sessions 图表是按等待状态分组,并且您正在查看“Top Load Items”表的 SQL 查询。在这种情况下,系统将对 DB Load by Waits 栏进行大小调整、分段和颜色编码,以显示该查询在导致给定等待状态方面所起的作用大小,以及哪些等待状态正在影响该查询。

 筛选指标

使用 Performance Insights 控制面板分析数据库负载

如果 Average Active Sessions 图表显示了一个瓶颈,您可以找出负载的来源。为此,请查看 Average Active Sessions 图表下方的“Top Load Items”表。选择特定项目 (如 SQL 查询或用户) 以深入了解该项目并查看有关该项目的详细信息。

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

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

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

  2. 如果有,请查看 Average Active Sessions 图表并确定负主要责任的等待状态。

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

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

例如,在随后出现的控制面板中,IO:XactSync 等待状态是一个出现频率较高的问题。CPU 等待状态是一个出现频率较低的问题,但它仍对负载有影响。

“Top Load Items”表的 SQL 选项卡中的前 4 个汇总查询与第一个状态紧密关联。因此,这些查询是您希望深入了解并执行子查询检查的查询。这样做是为了确定它们对导致性能问题所起的作用大小。

最后 3 个汇总查询对 CPU 起到了重要作用。这些查询将是用来调查 CPU 负载是否是一个问题的查询。

 筛选指标

其他用户界面功能

您可以使用 Performance Insights 用户界面的其他功能来帮助分析性能数据。

单击并拖动进行放大

在 Performance Insights 界面中,您可以选择负载图表的一小部分并放大细节。

 放大

要放大负载图表的一部分,请选择开始时间并拖动到所需时间段的结尾。执行该操作时,所选区域将突出显示。释放鼠标时,负载图表上的所选区域将放大,并重新计算 Top N 表。

暂停和缩小

在负载图表的右上角,可找到 PauseZoom out 工具。

 暂停和缩小

如果选择 Pause,负载图表将停止自动刷新。再次选择 Pause 时,图表将恢复自动刷新。

选择 Zoom out 时,负载图表将缩小到下一个最大的时间间隔。

相关主题