针对按需模式解决节流问题 - Amazon DynamoDB

针对按需模式解决节流问题

使用按需容量模式的 DynamoDB 表会自动适应应用程序的流量。但是,使用按需模式的表可能仍会受到节流。本主题讨论如何解决按需表的常见节流问题。

流量是前一个峰值的两倍多

如果在 30 分钟内超过之前流量峰值的两倍,则可能会遇到节流问题。在超过之前的流量峰值之前,建议将流量增长分散在至少 30 分钟内。要监控表的流量,请使用 Amazon CloudWatch 中的 ConsumedReadCapacityUnits 指标。有关更多信息,请参阅DynamoDB 指标与维度

对于新的按需表,可以立即驱动高达 4,000 个写入请求单位或 12,000 个读取请求单位,或者两者的任意线性组合。

对于切换到按需容量模式的现有表,先前的峰值为以下值之一:

  • 表的先前预调配吞吐量的一半

  • 在按需容量模式下新创建的表的设置

有关更多信息,请参阅按需容量模式的最初吞吐量

流量超过了每个分区的最大值

表上的每个分区最多可以提供 3,000 个读取请求单位或 1,000 个写入请求单位,或者两者的线性组合。如果分区流量超过此限制,该分区可能会被节流。要解决此问题,请执行以下操作:

  1. 使用 CloudWatch Contributor Insights for DynamoDB 确定表中最常访问和被节流的键。

  2. 随机处理对表的请求,以便随时间的推移分发对热分区键的请求。有关更多信息,请参阅在 DynamoDB 表中使用写入分片来均匀分配工作负载

热键可能会导致节流问题

在 DynamoDB 中,基数不高的分区键可能会导致许多请求,这些请求仅针对几个分区。如果生成的热分区超过了分区每秒 3000 RCU 或 1000 WCU 的限制,则可能导致节流。

诊断工具 CloudWatch Contributor Insights(CCI)可以为每个表的项目访问模式提供 CCI 图表,以协助您对此进行调试。您可以持续监控 DynamoDB 表中最常访问的键值和其他流量趋势。有关 CloudWatch Contributor Insights 的更多信息,请参阅 CloudWatch Contributor Insights for DynamoDB。有关更多信息,请参阅在 DynamoDB 中设计分区键来分配工作负载Choosing the Right DynamoDB Partition Key

流量超过每个表的账号配额

对于按需表,将在账户级别应用表级读取吞吐量和表级写入吞吐量配额。默认情况下,表吞吐量的最大读取请求单位和最大写入请求单位均为 40,000。如果表的流量超过每个表的账户吞吐量配额,该表可能会被节流。要解决此问题,请使用服务配额控制台来增加账户的表级读取和写入吞吐量配额。

您的表的全局二级索引已被节流

如果您的 DynamoDB 表具有被节流的二级全局索引,则节流可能会对基表造成背压节流。有关更多信息,请参阅对我的全局二级索引进行节流如何影响我的 Amazon DynamoDB 表在 DynamoDB 中使用全局二级索引