为什么我的按需容量模式 DynamoDB 表会节流?

1 分钟阅读
0

我的按需容量模式 Amazon DynamoDB 表节流了。

解决方案

使用按需容量模式的 DynamoDB 表会自动适应应用程序的流量。但是,使用按需模式的表可能仍会节流。要对您的应用案例进行故障排除请参阅以下常见的节流原因:

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

如果您的流量在 30 分钟内超过之前流量峰值的两倍,则可能会节流。最佳实践是逐渐提高流量,在前一个流量峰值出现至少 30 分钟之后再出现更高的流量峰值。要监控表的流量,请使用 Amazon CloudWatch 的 ConsumedReadCapacityUnits 指标。有关更多信息,请参阅 DynamoDB 指标和维度

对于新的按需容量模式表,您可以立即驱动最高 4,000 个写入请求单元或 12,000 个读取请求单元,或者二者的线性组合。

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

  • 该表之前预配置的吞吐量的一半
  • 新创建的具有按需容量模式的表的设置

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

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

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

  1. 使用适用于 DynamoDB 的 CloudWatch Contributor Insights 来识别表中最常访问和最常节流的键。
  2. 将对表的请求进行随机化处理,这样对热分区键的请求就会随着时间的推移而分散开来。有关更多信息,请参阅使用写入分片来均匀分配工作负载

流量超过了每张表的账号限额

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

表的全局二级索引已节流

如果您的 DynamoDB 表有一个节流的二级全局索引,则该节流可能会对基本表产生反向压力节流。有关更多信息,请参阅全局二级索引节流会如何影响 Amazon DynamoDB 表?以及在 DynamoDB 中使用全局二级索引

相关信息

峰值流量和扩展属性

如何为我的 Amazon DynamoDB 表选择正确的主键?

为什么 DynamoDB 控制台上的指标与 CloudWatch 的指标不同?

Amazon DynamoDB 中的服务、账户和表限额

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