Amazon DynamoDB 如何处理短时间间隔内的峰值负载?

1 分钟阅读
0

我想知道 Amazon DynamoDB 如何处理短时间间隔内的峰值工作负载。

解决方法

当您使用预配模式时,DynamoDB 通过提供容量暴增,为每个分区的吞吐量预配提供一定程度的灵活性。DynamoDB 目前最多保留 5 分钟(300 秒)的未使用读取和写入容量。假设 DynamoDB 表的容量预配为 150 个 RCU,并且在过去 5 分钟内没有使用容量。对于此配置,该表具有 45,000 个读取单位的容量暴增 (150* 300)。因此,如果突发峰值负载将使用量推高至 200 个读取单元,则 DynamoDB 可以利用容量暴增在 15 分钟内容纳 200 个 RCU。

示例: 45,000/(200 - 150) = 900 秒 = 15 分钟

但是,请考虑以下事项:

  • 容量暴增是尽最大努力提供,并不是保证提供。因此,在配置表的预配容量时,不要考虑容量暴增。
  • DynamoDB 可能会将容量暴增用于后台维护和其他任务,恕不另行通知。
  • 容量暴增无法缓解分区级别的节流。分区键不具有高基数可能会导致许多请求只针对几个分区。如果生成的热分区超过每个分区每秒 3,000 个 RCU 和/或 1,000 个 WCU 的限制,您的表将进行节流。

有关更多信息,请参阅有效使用容量暴增

在按需型容量模式下,DynamoDB 会自动适应您的应用程序的流量。按需型容量模式最多可以即时容纳表上之前峰值流量的两倍。假设您的应用程序的流量模式在每秒 25,000 到 50,000 次一致读取之间变化,并且之前的流量峰值为每秒 50,000 次读取。在这种情况下,按需容量模式最多可以即时容纳每秒 100,000 次读取的持续流量。如果您的应用程序维持每秒 100,000 次读取的流量,则该峰值将成为新的之前峰值。产生此新峰值后,后续流量最多可能会达到每秒 200,000 次读取。

但是,如果您的峰值几乎是即时的,并且超过前一峰值的两倍,那么您的表可能会进行节流。有关更多信息,请参阅读/写容量模式

AWS 官方
AWS 官方已更新 1 年前
没有评论

相关内容