我正在浏览AWS blog,然后从AWS re:Invent video那里了解DynamoDB的自适应缩放和突发事件的概念。我了解WCU和RCU的概念以及突发存储桶堆积300秒的想法,并且分区的WCU / RCU的峰值为1000/3000。
视频的开始时间23:00:
(1)视频提供了一个示例表,该表配备了500个WCU和1500个RCU。该表具有1个分区。 “假定”不活动5分钟后的突发存储桶将变为500 * 300 = 150K WCU和1500 * 300 = 450K RCU。从那里得出的结论是,现在已经准备好此突发存储桶的这张表可以提供一个分区最多5分钟的持续1K WCU或3K RCU
我们如何得出“持续1K WCU或3K RCU长达5分钟”的数字? 据我了解,这应该是RCU的计算:450K / 3K = 150秒
(2)再往下,将表分为两个分区后,已配置的WCU / RCU分别在两个分区@ 250/750中平均分配。对于2个分区,峰值RCU翻倍至6K,峰值WCU翻倍至2K,因此他们得出结论,同一突发存储桶现在提供两个分区持续提供2K WCU或6K RCU的持续时间达100秒。 / p>
我们如何得出“持续2K WCU或6K RCU最多100秒”的数字? 据我了解,这应该是RCU的计算:450K / 6K = 75秒 有任何DynamoDB专家可以帮助得出这个数字吗?
答案 0 :(得分:0)
持续1K WCU或3K RCU长达5分钟
该表仅凭其已配置的容量就可以已经支持500个WCU和1500个RCU。只有超出表的预配容量的使用才消耗突发容量。该表可以从配置的500 WCU到突发的500 WCU = 1K WCU的300 W。
在第二种情况下,问题是相同的。您正在计算450000÷6000,但应该计算450000÷(6000-1500)= 100秒,因为突发容量仅以超额速率消耗。
答案 1 :(得分:0)
每当您没有完全使用分区的吞吐量时,DynamoDB 都会保留一部分未使用的容量,用于以后的吞吐量激增以应对使用高峰。
<块引用>DynamoDB 目前最多可保留 5 分钟(300 秒)未使用的读写容量。
<块引用>请注意,这些突发容量详细信息将来可能会发生变化。
举个例子,假设我用 1RCU 配置了一个最小的 DDB。
我的 RCU 存储桶中的最大容量为 300 RCU 秒。我们知道 1 个 RCU 相当于 2 次 4KB/s 的读取。乘以秒意味着 RCU 秒实际上是 2 次读取 4KB。
我们可以使用这 300 个令牌 (RCU-s) 以我们的表和分区允许的最大速度读取 600 个 4KB 项目、60 个 40KB 项目、6 个 400KB 项目或介于两者之间的任何内容。
>亚马逊将补货描述为未使用容量的“部分”,但它实际上是任何“未使用的读写容量”。 Rick Houlihan 在 https://www.youtube.com/watch?v=kMY0_m29YzU 中说了同样多的话,套用一句,“如果这张桌子在那里闲置了 5 分钟未使用,最终将有 450k RCU 和 150k WCU”。在我所展示的小表中,它每空闲一秒就有 1 个 RCU-s。
答案 2 :(得分:-1)
WCU:15000 /((1000 * 1)-500)= 300秒
RCU:45000 /((3000 * 1)-1500)= 300秒
WCU:15000 /((1000 * 2)-500)= 100秒
RCU:45000 /((3000 * 2)-1500)= 100秒