亚马逊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 EventBridge 或 Amazon 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