亚马逊AWS官方博客

新功能 – Amazon DevOps Guru for RDS 使用 ML 检测、诊断和解决与 Amazon Aurora 相关的问题

我们宣布推出 Amazon DevOps Guru for RDS,这是面向 Amazon DevOps Guru 的全新功能。该功能可让开发人员轻松检测、诊断和解决 Amazon Aurora 中的性能与操作问题。

如今,成千上万的客户正在使用 Amazon Aurora,因为它具备高可用性、可扩展性和持久性。但是,随着应用程序规模和复杂性的增长,要想快速检测并解决操作和性能问题,这些客户面临更严峻的挑战。

去年的 Re: InVent 期间,我们宣布推出 DevOps Guru,该服务使用机器学习 (ML) 自动检测应用程序问题并向客户发出警报,包括数据库问题。我们于今日宣布推出 DevOps Guru for RDS,以帮助使用 Amazon Aurora 数据库的开发人员快速且大规模地检测、诊断和解决数据库性能问题。现在,开发人员将有充足的信息来确定引发数据库性能问题的确切原因。通过此次发布,在尝试发现和修复与性能相关的数据库问题时,开发人员和工程师可节省大量工作时间。

DevOps Guru for RDS 使用 ML 自动识别和分析各种与性能相关的数据库问题,例如主机资源的过度利用、数据库瓶颈或 SQL 查询的不当行为。该服务还会提供建议的解决方案以解决发现的问题。要使用此功能,您无需成为数据库或 ML 专家。

检测到问题时,DevOps Guru for RDS 会在 DevOps Guru 控制台中显示发现结果,同时使用 Amazon EventBridgeAmazon Simple Notification Service (SNS) 发送通知。这可让开发人员自动管理问题并即时采取行动。

DevOps Guru for RDS 的工作原理
DevOps Guru for RDS 使用针对数据库负载性能指标的异常检测功能来检测问题。以平均活动会话数 (AAS) 为单位衡量数据库负载。数据库负载衡量数据库中的活动水平,因此是了解数据库运行状况的绝佳指标。如果数据库负载很高,这就可能引发性能问题。可以将此指标与虚拟 CPU (vCPU) 的数量进行比较,如果数据库负载高于该数量,则可能会引发问题。

此指标最有用的维度是等待事件和主要 SQL。等待事件描述当前运行的 SQL 正在等待的系统条件。SQL 语句等待的最常见原因是其正在等待 CPU、等待读取或写入或等待锁定的资源。“主要 SQL”维度显示哪些查询产生最大的数据库负载。

下图是 DevOps Guru for RDS 报告的发现结果示例。该图显示,从 AAS 来看,其中大多数都在等待访问表或等待 CPU。

异常检测示例
如果继续在 DevOps Guru for RDS 分析页面上滚动,就可以发现问题的原因以及修复问题的一些建议。在此特定示例中,检测到两个问题:高负载等待事件和超出 CPU 容量。

DevOps Guru for RDS 更深入地研究这些问题。首先,它查看高负载等待事件,其中有 27 个 AAS 具备 IO 和 CPU 等待类型,占总数据库负载的 99%。

其次,该工具告诉我们正在运行的任务超过了 6 个进程。此数据库只有两个 vCPU,因此建议的运行中进程数最多应为 4 个(2 倍的 vCPU 数)。DevOps Guru for RDS 还会提出修复这些问题的建议。

建议

在另一个异常情况中,该图显示等待事件的负载很高,并且发现一个 SQL 查询需要进一步调查。如果点击 SQL 摘要 ID,则甚至可以看到确切的 SQL 查询。此见解的“分析和建议”部分包含有关如何进一步调查和解决问题的全面信息。可以通过点击等待事件以获得大量详细信息,例如点击等待事件 wait/io/table/sql/handler,或者在查看故障排除文档链接中获取信息。

分析和建议

DevOps Guru for RDS 入门
要开始使用 DevOps Guru 的这项新功能,请确保为您的 Amazon Aurora 数据库实例启用性能详情。它支持兼容 MySQL 和 PostgreSQL 的 Amazon Aurora。有关如何启用性能详情的说明,请参阅启用和禁用性能详情

下一步是让 DevOps Guru 开始监控您的 AWS 资源。您可以指定希望 DevOps Guru 监控的资源。

如果已在使用 DevOps Guru,只要有关于 Amazon Aurora 数据库资源的新见解,就可在控制台中看到。

要查看详细的数据库分析,请导航到“见解”页面,然后选择数据库负载聚合指标下新的查看分析按钮。该按钮将引导您查看 DevOps Guru for RDS 提供的详细分析。

查看分析

定价和可用性
DevOps Guru for RDS 免费提供给客户,其费用已涵盖在 DevOps Guru 向客户收取的 RDS 资源现有价格中。

DevOps Guru for RDS 已在提供 DevOps Guru 的所有区域推出:美国东部(俄亥俄)、美国东部(弗吉尼亚北部)、美国西部(俄勒冈)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、欧洲(法兰克福)、欧洲(爱尔兰)和欧洲(斯德哥尔摩)。

了解有关 DevOps Guru for RDS 的更多信息,以及查看 AWS Re: Invent 中主题为“使用 Amazon DevOps Guru for RDS 自动检测和解决性能问题”的演讲(会话 ID 为 15877)。

Marcia