AWS DynamoDB RCU与WCU计算合理性技术咨询
DynamoDB RCU/WCU 容量计算问题解答
咱们先把DynamoDB官方的容量单元规则明确下来,方便后续推导:
1个读取容量单元(RCU)= 每秒1次强一致性读取(对象≤4KB),或每秒2次最终一致性读取(对象≤4KB);若对象超过4KB,需按每4KB为单位额外消耗RCU。
1个写入容量单元(WCU)= 每秒1次1KB以内的对象写入;对象超过1KB时,每1KB需额外消耗WCU。
问题1:Lambda查询1000个4KB Item,4秒完成,按最终一致性计算需125个RCU,是否正确?
结论:这个计算完全正确
咱们拆解一下逻辑:
- 要4秒完成1000次读取,每秒需要完成的读取次数是
1000 ÷ 4 = 250次/秒 - 因为是最终一致性读取,1个RCU支持每秒2次这类读取(且每个Item刚好4KB,不需要额外拆分计算)
- 所以需要的RCU总量是
250 ÷ 2 = 125个
完全匹配DynamoDB的RCU计算规则。
问题2:两人同时执行上述查询操作,是否需250个RCU?
结论:是的,需要250个RCU
当两人同时执行时,系统的总读取吞吐量需求直接翻倍:
- 单人每秒需要250次最终一致性读取,两人并发就是
250 × 2 = 500次/秒 - 按照最终一致性读取的RCU换算规则,总RCU需求是
500 ÷ 2 = 250个
DynamoDB的容量单元是按并发总吞吐量计算的,所有并发请求的吞吐量总和决定了需要的容量单元数量。
问题3:Lambda定时插入60条4KB记录,要1秒完成,是否需240个WCU?
结论:这个计算是正确的
咱们一步步推导:
- 要1秒完成60条写入,每秒需要完成的写入次数是
60次/秒 - 每个Item是4KB,而1个WCU仅支持1KB以内的写入,所以单条4KB Item的写入需要消耗
4 ÷ 1 = 4个WCU - 总WCU需求就是
60 × 4 = 240个
完全符合DynamoDB的WCU计算逻辑。
内容的提问来源于stack exchange,提问作者WeCanBeFriends
相关产品推荐
相关产品推荐

