亚马逊云技术大会揭秘:如何轻松诊断和解决Amazon RDS性能问题

关键字: [Amazon Web Services re:Invent 2023, Database Performance, Performance Insights, Performance Bottlenecks, Monitoring Tools, Wait Events]

本文字数: 3300, 阅读完需: 16 分钟

视频

如视频不能正常播放,请前往bilibili观看本视频。>> 减轻负担: 诊断和解决 Amazon RDS 的性能问题_哔哩哔哩_bilibili

导读

调整关系数据库的性能既是一门艺术,也是一门科学。在本讲座中,您将了解如何充分利用 Amazon RDS 性能监控功能(如 Performance Insights 和 Enhanced Monitoring),并在离开讲座前,了解如何高效诊断和修复数据库性能问题。

演讲精华

以下是小编为您整理的本次演讲的精华,共3000字,阅读时间大约是15分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。

宾·李热烈欢迎各位参会者参加这次关于监控和诊断Amazon RDS和Aurora的富有成效的会议。他首先询问在座众多听众中,有多少人曾遇到过令人头疼的数据库性能挑战。几乎所有人都举起了手,这表明这个话题对于听众的重要性及紧迫性。

宾强调,本次会议的主要目的是全面培训参会人员,让他们了解各种强大的亚马逊云科技监测工具和服务。这将使观众具备克服各行各业公司普遍面临的复杂数据库性能问题的技术能力。

宾介绍他的搭档马克西姆·卡奇卡时,解释说他担任亚马逊云科技的领先首席数据库工程师。在马克西姆的深度技术角色中,他将展示一些亚马逊云科技开发的与尖端数据库性能诊断和故障排除相关的最新先进技术。

在进入会议议程的主要部分之前,宾向观众提出一个问题:思考一下手电筒、雷达和放大镜有什么共同点。观众们很快猜到这三种工具都能提高可见性和检测能力。

宾表示同意,并用一个比喻来说明:正如这些工具能在黑暗中照亮或识别难以找到的物体一样,正确的监测工具也能照亮难以发现的数据库性能瓶颈,从而使问题变得清晰,以便能够像放大镜或雷达一样对其进行正确诊断和解决。

宾再次强调,正如你不能解决你看不到的问题一样,如果你没有通过提供照明和检测能力的正确工具来获得适当的可视性,你也无法解决复杂的数据库问题。

在转入会议议程时,宾首先简要介绍了Amazon RDS的一些有用背景,以确保每个人在对RDS有更深入的了解之后,可以深入了解。接下来,他们将探讨帮助克服性能挑战的各种监测服务和工具。

马克西姆将展示亚马逊云科技开发的与Amazon RDS相关的一些最新功能,包括高级数据库性能诊断和故障排除。最后,通过一个实际故障排除案例,他们将展示如何使用RDS解决在线网络商店性能下降的问题。与会者将看到这些工具如何迅速定位并解决客户的实际瓶颈问题。这个演示将巩固如何使用现实场景应用监控概念的方法。

Pin提供了亚马逊关系数据库服务(RDS)的概述,这是一种完全托管的数据库服务,处理所有耗时的管理任务,如备份、升级、补丁、复制、故障检测、灾难恢复、容量调配等。这使开发人员可以更多地专注于构建创新应用程序,而不是管理与运行高可用、可靠和安全数据库相关的复杂操作任务。使用RDS,公司不再需要担心数据库管理,而可以将资源投入到应用程序创新中。

Pin强调,RDS支持流行的数据库引擎,包括Oracle、SQL Server、PostgreSQL、MySQL、MariaDB和Amazon Aurora。这种广泛的支持使得客户可以轻松地将现有数据库迁移到云端或在其偏好的关系数据库引擎上构建新的云原生应用程序。特别提到的是,Amazon Aurora以企业级安全性、可用性和可靠性结合开源代码数据库的成本效益和简单性独树一帜。Aurora通过其云原生架构实现这一点,该架构包括一个分布式、容错存储层,用于优化性能。

Pin分享说,由于其在企业级功能和经济性方面的优势,Aurora的使用增长速度超过了亚马逊云科技历史上任何其他服务。今天,成千上万的不同客户使用Aurora来驱动他们最重要的应用程序。主要客户包括Verizon、GE、Capital One和亚马逊自己的亚马逊网站。

在转到亚马逊RDS的监控功能部分时,Pin解释说,可以利用多个级别,包括实例级、操作系统级和数据库引擎级。

例如,对于实例级的监控,业内专家推荐使用Amazon CloudWatch作为起点。据Pin介绍,CloudWatch能够帮助用户监控所有的亚马逊云科技资源和整个应用栈。尤其在RDS方面,它可以追踪诸如CPU利用率、存储、每秒输入/输出操作(IOPS)、网络流量等实例级指标。

CloudWatch提供了一种直观的可视化报警功能,用户可以根据指标、阈值、评估周期和聚合统计轻松地自定义报警设置。你可以使用静态阈值在超过特定值时触发警报,例如Oracle的100,000 IOPS。

然而,Pin指出,CloudWatch还提供了更先进的动态阈值功能,这些阈值利用了背后的机器学习技术。这些算法会分析历史指标数据以根据工作负载的典型每小时、每日和每周模式建立预期的基准范围。当当前指标偏离预期基准范围时,动态阈值可以触发异常检测。这使得相对于静态阈值来说,对资源利用率变化的敏感度和准确性更高。Capital One就使用了CloudWatch的动态阈值来通知他们关于表示潜在问题的异常情况。

尽管CloudWatch是实例级监控的好选择,但Pin表示,有时公司可能需要更深层次的操作系统可见性,而这超出了CloudWatch的能力范围。这时,RDS增强监控功能就能派上用场了。它直接从RDS数据库实例本身收集细粒度的操作系统遥测,而不仅仅是虚拟机监控程序层。

Pin强调,增强监控功能是亚马逊RDS的完全集成功能,因此无需手动安装即可启用。亚马逊云科技会在实例上部署一个代理来收集操作系统指标。增强监控包括一个默认的30天保留期限和1分钟的分辨率。不过,Pin表示,这可以根据客户需求进行定制,提供更长的保留时间或1秒的分辨率,以便获得更多细致的操作系统数据。

GE就利用了RDS增强监控功能来优化他们的任务关键工作负载,通过获取如CPU占用时间和页面故障等操作系统指标的可见性来帮助优化数据库配置。

在探讨数据库引擎方面时,Pin认为这是一个需要进行深入分析的区域,包括对SQL查询性能统计数据、等待事件以及其他特定的数据库指标的关注。针对此类深入的数据库可视化需求,Amazon RDS性能洞察功能显得尤为适用。它能够提供无与伦比的数据库工作负载和行为可视化。

Pin解释说,性能洞察能够帮助衡量数据库负载,例如平均活跃会话数量。活跃会话指的是当前正在执行SQL查询并等待数据库回应的连接。因此,它能展示出并发查询和数据库交互的可视化效果。

除了活跃会话和聚合负载之外,性能洞察还收集了关于SQL查询本身的详细资料。同时,还会收集与每个查询关联的维度,如数据库用户、客户端程序、应用程序名称以及等待事件。

Pin强调,等待事件尤为重要,因为它们有助于揭示性能瓶颈的根本原因。等待事件表示在执行查询过程中查询正在等待什么。常见的等待来源包括I/O延迟(从磁盘读取数据)、行或表的锁竞争、复制延迟以及缓冲区缓存丢失等。通过对与高负载查询相关的等待事件进行分析,您可以找到有关优化机会的有用见解。

Verizon利用性能洞察的等待事件分析来优化配置,从而快速解决大规模Aurora集群的临时性能问题。

Pin提到,可能有人担心性能洞察的1秒采样率可能会导致数据丢失。但他向观众保证,这种粒度级别的细节能够提供整体数据库工作负载和行为的非常准确的代表,就像每秒24帧的视频播放产生平滑的视频一样。

目标是为了优化监控开销,以便捕捉对工作负载影响最大的最具影响力的“大鱼”查询。性能洞察并非旨在作为捕获每一个SQL语句的详尽审计工具。捕捉最具影响力的查询可以避免过多的数据收集开销。

从视觉效果上来看,Performance Insights将多个用户的并发工作负载汇总成一种直观的时间序列数据库负载图。这种设计使得数据库的并发和空闲时间对比更加清晰。通过为每种等待事件类型分配不同颜色,图表生动地展示了随着时间推移的各种等待行为对整体的影响。

Pin功能可以帮助用户快速了解数据库的状态和健康情况。例如,如果图中没有显示活跃会话,那么这意味着数据库处于无负载的空闲状态。因此,对于任何最终用户性能问题,我们首先需要排除是否是由数据库本身引起的可能性,而可能是其他组件的问题。

在另一方面,如果活跃会话超过RDS实例配置的vCPU数量,那么这可能表明需要调整或增加资源来解决性能瓶颈。然而,如果活跃会话保持在vCPU数量以下,那么数据库应有额外的容量可用。

云计算的弹性和按需付费模式使得我们能够使用Performance Insights来进行数据驱动的合适大小调整决策。负载图可以显示出可能过大或过小的实例,以便优化开销。例如,如果负载持续远低于vCPU数量,那么这可能意味着存在过度供应的实例,它们比实际所需的工作负载更大且更昂贵。相反,如果负载超过vCPU数量,那么可能需要更多资源或优化以防止性能下降的未足够大小的实例。

Pin强调了Performance Insights的另一项强大功能,即使用多种可用维度来过滤和分析数据库活动。这有助于简化诊断瓶颈的根本原因。例如,我们可以隔离由某个用户执行的所有阻塞锁等待的查询,以识别潜在的罪魁祸首查询。此外,还可以按照客户端应用程序进行过滤,以便精确定位滥用数据库连接的应用程序。

亚马逊公司利用Performance Insights中的应用名称维度,迅速识别出影响数据库负载的低优化查询的具体微服务。这样可以实现更有针对性的调整和扩展。

Pin解释说,不同RDS数据库引擎所支持的维度会根据客户需求和建议而有所不同。他鼓励与会者就他们希望添加的有用维度提供意见。亚马逊云科技的RDS团队非常重视客户关于扩大监控功能的需求。

Pin概述了RDS监控的基本原理之后,将舞台交给了Maxim Kachka,共同讨论简化和自动化数据库性能洞察的最新创新。

Maxim首先解释了关注三个领域的改进:统一界面、突出重要遥测以及引入自动化顾问。他首先详细介绍了致力于构建一个名为Single Pane of Glass的独立数据库遥测界面的工作。过去,CloudWatch、Enhanced Monitoring和Performance Insights各自拥有单独的控制台。由于在这些控制台上有超过100个独特的RDS指标,通常不清楚哪些特定的指标最重要且最相关。

为了解决这个问题,亚马逊云科技现已推出了预构建的、包含最有用RDS指标的精选数据库健康状况控制台。这些控制板涵盖了关键领域,如计算、内存、存储、I/O和SQL性能。目标是提供一个带有最重要指标的单一起点。

Maxim指出,这些预定义的控制板适用于所有RDS引擎。但用户仍然可以根据自己的特定需求从基本的遥测数据中构建完全定制的控制板。

在最近的增强功能方面,Maxim强调了Performance Insights控制台现在可以直接发布到Amazon CloudWatch。这允许利用CloudWatch丰富的图形自定义功能,如配置具有阈值的指标、更改图表类型以及添加注释。

注释可以改进协作,通过随着时间的推移跨团队沟通见解、采取的行动以及解决性能问题的进展。一个真正的客户示例是DevOps团队在仪表盘图表上标注事故事后分析,以告知其他团队根本原因并防止未来再次发生。

CloudWatch的额外好处包括使用数学表达式构建衍生指标的能力。例如,缓冲区缓存命中率直接由RDS发出,但可以轻松地从基本指标中使用简单算术计算出来。完成的仪表盘可以与组织内的其他人共享,如开发团队或领导层。

在历史的长河中,云监控服务CloudWatch一直以其丰富的警报创建功能而闻名,但这些功能仅限于本地指标。然而,从2022年9月开始,这一状况发生了改变,因为现在所有的RDS遥测数据(包括性能洞察和增强监控指标)都可以设置警报了。要使用这项功能,最简单的方法就是在性能洞察图表上选择“在CloudWatch中编辑”,然后将指标带入CloudWatch。之后,就可以像对待任何其他CloudWatch指标一样进行配置警报。这一新功能使得Capital One能够对其关键的数据库指标进行警报设置,从而积极主动地识别潜在的问题。

另外,Maxim还关注了对按需性能分析的关注。这种自动化技术可以为用户所选的时间范围提供数据库性能分析,无需手动进行调查。通过基于等待事件总结问题的原因、指出主要贡献的查询以及强调相关的资源异常,它可以快速确定数据库在此期间是否正常运行或存在任何问题。此外,它还具有将相关文档链接起来的功能,并为检测到的常见问题提供后续的故障排除步骤。

在一个关键客户的实际应用中,按需性能分析被用于自动诊断间歇性的性能波动。在过去,这种情况需要进行繁琐的手动分析。而现在,按需性能分析为这些问题提供了根本原因的详细信息,从而实现了更高效地解决问题。

除了按需性能分析外,Amazon DevOps Guru也被认为是另一种值得关注的服务。它持续监控指标并提供整个应用程序环境的异常模式警报。对于RDS,它可以检测到数据库性能偏差,并提供详细的分析报告,类似于按需性能分析的功能。

最后,让我们来看一个实时的故障排除演示。在这个演示中,Maxim设置了一个在线电子商城背景,该网站向客户展示他们的近期订单。这个页面向后端RDS数据库发出关键查询以填充订单历史记录。由于这个工作流程非常重要,公司已经配置了广泛的监控和警报,以便在出现问题时收到通知。

在这个过程中,Maxim扮演了一个轮值工程师的角色,他正在接收关于数据库响应缓慢和一些请求超时的警报,从而导致网站性能可视下降。演示展示了如何使用各种工具来找到问题的根本原因,找出责任人,并确定如何解决问题。

首先,我们需要查明性能下降的根源。查看Performance Insights数据库负载图时,我们发现了一个非常清晰且显著的活动峰值,这说明数据库运行不正常。为了更好地了解具体情况,Maxim点击了新的“分析性能”按钮,以便在该时间段内获取自动化报告。

经过分析,这个峰值确实很不寻常,主要受到等待I/O活动的活跃会话的影响,尤其是io_datafile_read等待事件。这意味着存在一个读取数据文件的I/O瓶颈。此外,同一时间发生的意外数据库连接峰值也引起了关注。

因此,根本原因是由于数据库连接激增导致了I/O资源问题,从而超出了IOPS限制。相较于繁琐的手动指标调查,自动化的性能分析报告为我们提供了更快速的洞察。

接下来,我们需要找出额外的负载来源。通过Performance Insights的顶级查询视图,我们发现问题的查询并非预期的订单历史查询,而是应用程序团队不熟悉的其他查询。通过查看应用程序名称维度,我们将这些神秘查询与引发负载峰值的新内部呼叫中心应用程序联系在一起。这一维度的应用简化了将负载增加归因于其来源的过程。

最后,我们探讨了一些可能的解决方案。调整呼叫中心查询并未立即见效。增加IOPS容量可以缓解争用。增大RDS实例大小可能会避免将两个工作负载推到磁盘上。或者,我们可以将呼叫中心查询转移到读取副本或使用缓存来减轻数据库负载。

总的来说,Performance Insights使我们能够识别性能下降的来源,了解根本原因,并为潜在的问题提供基于证据的解决方案。自动化的功能使得我们能够实现快速解决时间,而无需进行繁琐的手动分析。

Pin强调,通过像CloudWatch异常检测这样的全面可见性工具,以及与CloudWatch集成的Performance Insights,以及自动化的性能诊断,使我们的公司能够在对客户和业务产生明显影响之前识别并预防潜在的性能问题。他鼓励与会者充分利用适当工具的专用功能来完成任务。

强调使用专为监控工具设计的可视化功能来高效识别数据库性能瓶颈的重要性。

  • 概述Amazon RDS和Aurora的全托管优势,如自动配置、备份和升级等。
  • 介绍RDS提供的不同级别的粒度监控:通过CloudWatch进行实例监控,通过Enhanced Monitoring进行操作系统监控,以及通过Performance Insights进行数据库引擎监控。
  • 阐述Performance Insights如何通过测量数据库负载、收集详细查询数据、分析等待事件等多个维度,为客户提供对问题根本原因的深入洞察。
  • 分享客户实际应用案例,展示如何使用RDS监控工具(如CloudWatch动态阈值、Enhanced Monitoring OS指标、Performance Insights等待事件和维度)来解决实际问题。
  • 介绍亚马逊云科技的最新创新,如Performance Analysis on Demand,旨在简化和自动化揭示整体数据库健康和性能的见解。
  • 提供一个实际的端到端演示,说明如何使用Performance Insights快速识别性能下降的根源、原因和解决途径。
  • 强调主动监测和对诊断问题的自动化处理对于预防客户或业务受到影响的重要性。

下面是一些演讲现场的精彩瞬间:

以下是关于讨论Amazon RDS和Aurora数据库性能监控和诊断工具的截图的简体中文描述。

性能洞察致力于追踪关键的数据库查询,以便发现潜在的性能瓶颈,而不仅仅是审核每个查询。

性能洞察通过为不同类型的等待事件分配颜色,清晰地展示了随着时间的推移数据库负载的变化。

来自性能洞察的截图显示,绿色代表CPU利用率,红色代表阻塞,有助于理解数据库的性能问题。

演讲者解释道,通过比较平均活跃会话和实例中的vCPU数量,可以找出CPU瓶颈所在。

性能洞察通过分析数据库负载与实例规模,协助客户调整实例规模以实现最佳成本效益。

领导团队会通过调查问卷向参会者收集反馈意见,以提高亚马逊云科技服务的质量。

总结

该会议涉及在Amazon RDS中监控和解决数据库性能问题的主题。演讲者强调,可见性至关重要--如果你看不到问题,你就无法解决它。他们概述了在各种亚马逊云科技工具中进行实例、操作系统和数据库引擎级监控的方法。主要观点:通过CloudWatch监控实例指标,启用增强型监控以获取操作系统级的可见性,并利用性能洞察力进行深入的SQL查询分析。

性能洞察力提供了有价值的维度,如等待事件,以确定瓶颈。演讲者展示了如何使用这些工具共同排查由工作负载高峰引发的假定性能问题。他们解释了几个可能的解决方案,如增加IOPS、调整实例大小和使用缓存。

总之,这次会议使您能够积极监控您的数据库环境,并使用亚马逊云科技服务提供的丰富可见性快速诊断和解决性能瓶颈。

演讲原文

Take a load off: Diagnose & resolve performance issues with Amazon RDS-CSDN博客

想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!

2023亚马逊云科技re:Invent全球大会 - 官方网站

点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!

点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!

即刻注册亚马逊云科技账户,开启云端之旅!

【免费】亚马逊云科技“100 余种核心云服务产品免费试用”

【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”

亚马逊云科技是谁?

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。

  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李白的朋友高适

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值