我想解决适用于 Amazon Aurora PostgreSQL 兼容版的 Amazon Aurora Serverless v2 的扩缩问题。
如果即使数据库没有负载,Aurora Serverless v2 也无法缩减到最小容量,您必须将参数更新为默认值。Aurora Serverless v2 使用 Aurora 容量单位 (ACU) 来衡量计算容量,每个 ACU 代表大约 2 千兆字节 (GiB) 的内存以及相应的 CPU 和网络资源。
如果您的资源存在过多空闲连接,或者您的 CPU 利用率长时间很高,则无法纵向扩展到最大容量。如果您将最小容量配置为 0.5 ACU 并使用自动暂停功能,则可能会遇到导致连接或事务超时错误的冷启动问题。
如果您从预置实例迁移到无服务器实例,请查看预置实例的 BufferCacheHitRatio 指标以了解数据库实例的行为。如果该指标不稳定且在 Aurora Serverless 中有所下降,请根据您的数据库缓冲区缓存性能需求增加最小 ACU。最小 ACU 越高,数据库纵向扩展以满足应用程序需求的速度就越快。有关详细信息,请参阅为 Aurora 集群选择 Aurora Serverless v2 容量范围。
要配置最小 ACU,请完成以下步骤:
空闲的 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。
要跟踪 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 中的扩缩)
rePost Polyglot
已提问 3 年前
已提问 4 年前
whb
已发布 2 年前