数据库实例的性能洞察指标 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

数据库实例的性能洞察指标

性能洞察可监控不同类型的指标,如以下各节所述。

数据库负载

数据库加载 (DBLoad) 是 Performance Insights 中的一项关键指标,用于衡量数据库中的活动水平。每秒收集一次并自动发布到亚马逊CloudWatch。它表示数据库实例在平均活动会话 (AAS) 中的活动,即同时运行 SQL 查询的会话数量。这个DBLoad指标与其他时间序列指标不同,因为可以使用以下五个维度中的任何一个来解释它:等待、SQL、主机、用户和数据库。这些维度是的子类别DBLoad公制。你可以把它们用作切成薄片类别代表数据库负载的不同特征。有关我们如何计算数据库负载的详细描述,请参见数据库加载在亚马逊 RDS 文档中。

以下屏幕插图显示了性能洞察工具。

性能洞察工具中的数据库加载

维度

  • 等待活动是数据库会话等待资源或其他操作完成才能继续处理的情况。如果你运行一个 SQL 语句,比如SELECT * FROM big_table如果这个表比分配的InnoDB缓冲池大得多,你的会话很可能会等待wait/io/file/innodb/innodb_data_file等待事件,由数据文件上的物理 I/O 操作引起。等待事件是数据库监控的重要维度,因为它们表明可能存在性能瓶颈。等待事件表示您在会话中运行的 SQL 语句等待时间最多的资源和操作。例如,wait/synch/mutex/innodb/trx_sys_mutex当数据库活动频繁且有大量事务时,就会发生事件,并且wait/synch/mutex/innodb/buf_pool_mutex当线程在InnoDB缓冲池上获得锁定以访问内存中的页面时,就会发生事件。有关所有 MySQL 和 MariaDB 等待事件的信息,请参见等待事件摘要表在 MySQL 文档中。要了解如何解释乐器名称,请参见性能架构仪器命名惯例在 MySQL 文档中。

  • SQL显示哪些 SQL 语句对数据库总负载的贡献最大。这个顶部尺寸桌子,位于数据库加载Amazon RDS 性能洞察中的图表是交互式的。您可以通过单击 SQL 语句中的栏来获取与 SQL 语句相关的等待事件的详细列表等待加载 (AAS)专栏。当您在列表中选择 SQL 语句时,Performance Insights 会在列表中显示相关的等待事件数据库加载图表和中的 SQL 语句文本SQL 文本部分。SQL 统计信息显示在右侧顶部尺寸桌子。

  • 主持人显示连接的客户机的主机名。此维度可帮助您确定哪些客户端主机将大部分负载发送到数据库。

  • 用户按登录到数据库的用户对数据库负载进行分组。

  • 数据库按客户端连接的数据库的名称对数据库负载进行分组。

计数器指标

计数器指标是累积指标,其值只能在数据库实例重启时增加或重置为零。计数器指标的值不能减少到其先前的值。这些指标代表一个单调递增的计数器。

  • 原生计数器是由数据库引擎定义的指标,而不是由 Amazon RDS 定义的指标。例如:

    • SQL.Innodb_rows_inserted表示插入到 InnoDB 表中的行数。

    • SQL.Select_scan表示完成对第一个表的完整扫描的联接数。

    • Cache.Innodb_buffer_pool_reads表示 InnoDB 引擎无法从缓冲池检索而必须直接从磁盘读取的逻辑读取次数。

    • Cache.Innodb_buffer_pool_read_requests表示逻辑读取请求的数量。

    有关所有原生指标的定义,请参见服务器状态变量在 MySQL 文档中。

  • 非原生计数器由亚马逊 RDS 定义。您可以使用特定查询获取这些指标,也可以在计算中使用两个或多个本地指标来获取这些指标。非原生计数器指标可以表示延迟、比率或命中率。例如:

    • Cache.innoDB_buffer_pool_hits表示 InnoDB 在不使用磁盘的情况下可以从缓冲池检索的读取操作数。它是根据本地计数器指标计算得出的,如下所示:

      db.Cache.Innodb_buffer_pool_read_requests - db.Cache.Innodb_buffer_pool_reads
    • IO.innoDB_datafile_writes_to_disk表示 InnoDB 数据文件写入磁盘的操作次数。它仅捕获对数据文件的操作,不捕获双重写入或重做记录写入操作。其计算方法如下:

      db.IO.Innodb_data_writes - db.IO.Innodb_log_writes - db.IO.Innodb_dblwr_writes

您可以直接在 Performance Insights 控制面板中可视化数据库实例指标。选择管理指标,选择数据库指标选项卡,然后选择感兴趣的指标,如下图所示。

在 “性能见解” 中选择数据库实例指标

选择更新图表按钮显示您选择的指标,如下图所示。

在 “性能见解” 中查看数据库实例指标

SQL 统计数据

Performance Insights 收集有关查询运行的每一秒和每个 SQL 调用的 SQL 查询的性能相关指标。一般而言,绩效洞察会收集SQL 统计信息在陈述和摘要层面。但是,对于 MariaDB 和 MySQL 数据库实例,统计数据仅在摘要级别收集。

  • 摘要统计数据是所有具有相同模式但最终具有不同文字值的查询的复合指标。摘要用变量替换特定的文字值;例如:

    SELECT department_id, department_name FROM departments WHERE location_id = ?
  • 有些指标代表统计数据每秒适用于每条摘要的 SQL 语句。例如,sql_tokenized.stats.count_star_per_sec表示每秒的调用次数(即每秒 SQL 语句运行了多少次)。

  • 绩效洞察还包括以下指标:每次通话SQL 语句的统计信息。例如,sql_tokenized.stats.sum_timer_wait_per_call显示每次调用 SQL 语句的平均延迟,以毫秒为单位。

SQL 统计信息可在 “性能见解” 仪表板中找到热门的 SQL的选项卡顶部尺寸桌子。

SQL 统计数据