为何DynamoDB热分区未触发拆分?
问题解答
核心原因:单分区吞吐量未达触发拆分的阈值
DynamoDB触发分区拆分的逻辑有两个核心条件:
- 单个分区的存储容量超过10GB;
- 或者持续达到单分区的最大吞吐量上限,且存在未被满足的吞吐量需求。
按需模式下,单个分区的强一致读最大吞吐量为4000 RCU,你当前的负载仅达到3000 RCU,尚未触达单分区的吞吐量上限,因此不会触发拆分操作。
关键提示:相同分区键无法通过拆分解决热键问题
即使你将负载推高至4000 RCU以上,DynamoDB也不会为同一个分区键的数据拆分出多个分区——分区由分区键的哈希值决定,相同分区键的哈希值完全一致,所有请求始终会路由到同一个分区。分区拆分仅作用于不同分区键的哈希范围,无法解决单分区键的热瓶颈问题。
后续使用率下降的可能原因
- DynamoDB节流限制:当请求量接近单分区上限时,DynamoDB会返回
ProvisionedThroughputExceededException,即使禁用了CLI重试,实际成功执行的请求数量也会减少,表现为RCU使用率下降; - EC2网络带宽瓶颈:50台EC2实例的总网络带宽可能无法支撑持续发送足够的请求,导致请求发送速率受限,RCU随之降低;
- 高频命令执行瓶颈:
watch -n 0.1的高频执行可能在EC2实例上遇到进程调度或命令执行的限制,无法持续维持峰值请求量。
内容的提问来源于stack exchange,提问作者John Doe
相关产品推荐
相关产品推荐

