跳至内容

如何解决 Aurora Serverless v2 的扩缩问题?

2 分钟阅读
0

我想解决适用于 Amazon Aurora PostgreSQL 兼容版的 Amazon Aurora Serverless v2 的扩缩问题。

简短描述

如果即使数据库没有负载,Aurora Serverless v2 也无法缩减到最小容量,您必须将参数更新为默认值。Aurora Serverless v2 使用 Aurora 容量单位 (ACU) 来衡量计算容量,每个 ACU 代表大约 2 千兆字节 (GiB) 的内存以及相应的 CPU 和网络资源。

如果您的资源存在过多空闲连接,或者您的 CPU 利用率长时间很高,则无法纵向扩展到最大容量。如果您将最小容量配置为 0.5 ACU 并使用自动暂停功能,则可能会遇到导致连接或事务超时错误的冷启动问题。

解决方法

修改最小 ACU

如果您从预置实例迁移到无服务器实例,请查看预置实例的 BufferCacheHitRatio 指标以了解数据库实例的行为。如果该指标不稳定且在 Aurora Serverless 中有所下降,请根据您的数据库缓冲区缓存性能需求增加最小 ACU。最小 ACU 越高,数据库纵向扩展以满足应用程序需求的速度就越快。有关详细信息,请参阅为 Aurora 集群选择 Aurora Serverless v2 容量范围。

要配置最小 ACU,请完成以下步骤:

  1. 打开 Amazon Aurora 和 RDS 控制台。
  2. 在导航窗格中,选择 Databases(数据库)。
  3. 选择为新集群 Create database(创建数据库)或选择现有集群,然后选择 Modify(修改)。
  4. 在 Instance Configuration(实例配置)部分的 Capacity range(容量范围)下,设置最小 ACU 值。有关详细信息,请参阅创建一个使用 Aurora Serverless v2 的数据库集群中的 Capacity range(容量范围)。
    注意:如果您激活了 Database Insights,最佳做法是将最小容量 (ACU) 设置为 2。如果您使用全局数据库,请将最小容量 (ACU) 设置为 8。有关详细信息,请参阅 Aurora Serverless v2 的性能和扩缩中的为集群选择最小 Aurora Serverless v2 容量设置。

更改读取器实例的优先级

空闲的 Aurora Serverless v2 写入器和读取器可以缩减到您为集群指定的最小 ACU 值。在后端运行的后台处理和管理任务可能会导致无服务器实例无法缩减到最小 ACU。

有关详细信息,请参阅对 Aurora Serverless v2 容量问题进行故障排除。

移除自定义值

数据库参数,例如 max_connections 和 max_locks_per_transaction,会影响扩缩行为。自定义值不支持数据库扩展到最小容量。要移除 max_connections 和 max_locks_per_transaction 的自定义值,请将参数设置为默认值。然后,重启主数据库实例。

减轻数据库的连接压力

为了减轻数据库的连接压力,请使用 Amazon RDS 代理配置连接池并添加重试逻辑和指数回退机制。

查看数据库查询

为了减少负载并提高扩缩性能,请定期检查和优化数据库查询。要优化查询,请运行 ANALYZE 和 VACUUM PostgreSQL 命令。有关详细信息,请参阅 PostgreSQL 网站上的 ANALYZE 和 Routine Vacuuming。

监控 CloudWatch 指标

要跟踪 ACU 的实际使用情况,请监控 ServerlessDatabaseCapacity、ACUUtilization、CPUUtilization 和 FreeableMemory。这些是 Aurora Serverless 2 的 Amazon CloudWatch 指标。要接收有关 Aurora Serverless v2 扩缩问题的主动警报,您必须配置 CloudWatch 警报。如果 ACUUtilization 和 CPUUtilization 指标接近 100%,表明您的 Aurora Serverless v2 的最大 ACU 容量不足,并且处于负载极高的状态。

要针对扩缩失败或长时间处于高容量运行状态设置警报,请参阅创建 CloudWatch 警报以监控 Amazon Aurora。

设置自动暂停和超时配置的值

为 Aurora Serverless v2 设置自动暂停和恢复值。停止并重启数据库,以回收可能随着时间的推移而积聚的内存碎片。

**注意:**如果您停止并重启数据库,数据库会出现停机。

相关信息

Understanding how ACU minimum and maximum range impacts scaling in Amazon Aurora Serverless v2(了解 ACU 的最小和最大范围如何影响 Amazon Aurora Serverless v2 中的扩缩)

AWS 官方已更新 9 个月前