为什么我的按需 DynamoDB 表受到节流?

上次更新时间:2021 年 6 月 18 日

我的按需 Amazon DynamoDB 表受到节流。

简短描述

下面是按需表可能受到限制的两个常见原因:

  • 流量是前一个峰值的两倍以上。
  • 流量超出每个分区的最大值。

解决方法

Amazon DynamoDB 按需模式提供了一种灵活的选项,在无需规划容量的情况下,每秒能够满足数千个请求的需要。DynamoDB 按需模式为读取和写入请求提供按请求定价,因此您只需为使用量付费。使用按需容量模式的 DynamoDB 表可自动适应应用程序的流量。但是,使用按需模式的表可能仍然会受到节流。

流量是上一个峰值的两倍以上

如果您在 30 分钟内超过上一次流量峰值两倍,则可能会遇到限制。最佳做法是在超过上一次流量峰值两倍之前,将您的流量增长延长至少 30 分钟。使用 Amazon CloudWatch 中的 ConsumedReadCapacityUnits 指标监控至表格的流量。有关更多信息,请参阅 DynamoDB 指标和维度

对于新的按需表,您可以立即驱动最多 4000 个写请求单位或 12000 个读请求单位,或此两者的任何线性组合。对于切换到按需容量模式的现有表格,上一个峰值是该表格上一个预置吞吐量的一半——是或者按下容量模式下新创建表格的设置(以较高者为准)。有关更多信息,请参阅按需容量模式的初始吞吐量

流量超出每个分区的最大值

表中的每个分区最多可提供 3000 个读请求单位或 1000 个写请求单位,或此两者的线性组合。如果一个分区的流量超过此限制,则该分区可能会受到限制。要解决此问题:

  1. 使用适用于 DynamoDB 的 CloudWatch Contributor Insights来标识您的表中最常访问和最常限流的键。
  2. 对至表格的请求进行随机化,以使对热分区键的请求随时间分布。有关更多信息,请参阅使用写入分区均匀分布工作负载