如何计算DynamoDB的读取容量单位和写入容量单位

时间:2017-02-27 20:12:00

标签: amazon-dynamodb

如何使用以下数据计算RCU和WCU:读取吞吐量为32 GB / s,写入吞吐量为16 GB / s。

2 个答案:

答案 0 :(得分:52)

DynamoDB Provisioned Throughput基于一定大小的单位和正在撰写的项目数量:

  

在DynamoDB中,您可以根据容量单位指定预配置的吞吐量要求。使用以下准则确定您的预配置吞吐量:

     
      
  • 对于最大4 KB的项目,一个读取容量单位表示每秒一次强烈一致的读取,或每秒两次最终一致读取。如果需要读取大于4 KB的项目,DynamoDB将需要消耗额外的读取容量单位。所需的读取容量单位总数取决于项目大小,以及是否需要最终一致或强烈一致的读取。
  •   
  • 一个写入容量单位表示最大1 KB的项目每秒写入一次。如果需要编写大于1 KB的项目,DynamoDB将需要消耗额外的写入容量单位。所需的写入容量单位总数取决于项目大小。
  •   

因此,在确定所需容量时,您需要知道每秒要读取和写入的的数量,以及这些项的大小

您应该寻找一定数量的项目,而不是寻求特定的GB / s,而您希望每秒读取/写入。这是您的应用程序为满足运营性能所需的功能。

还有一些DynamoDB limits会适用,但这些可以根据要求进行更改:

  
      
  • 美国东部(弗吉尼亚北部)地区:      
        
    • 每张表 - 40,000个读取容量单位和40,000个写入容量单位
    •   
    • 每个帐户 - 80,000个读取容量单位和80,000个写入容量单位
    •   
  •   
  • 所有其他地区:      
        
    • 每张表 - 10,000个读取容量单位和10,000个写入容量单位
    •   
    • 每个帐户 - 20,000个读取容量单位和20,000个写入容量单位
    •   
  •   

在40,000读取容量单位x 4KB x 2(最终一致)= 320MB / s

如果我的计算是正确的,那么您的要求是这个数量的100倍,因此看起来DynamoDB不适合这种高吞吐量。

你的速度是否正确?

然后出现了如何每秒生成如此多数据的问题。全双工10GFC光纤以2550MB / s的速度运行,因此如果要进出AWS云,您需要多个光纤连接才能传输此类数据。

即使10Gb以太网也只提供10Gbit / s,因此传输32GB需要28秒 - 这就是传输一秒数据!

底线:您的数据要求非常高。你确定它们是真实的吗?

答案 1 :(得分:7)

如果单击您的dynamodb表的capacity tab,则估计成本旁边会有一个容量计算器链接。您可以使用它来确定读取和写入容量单位以及估计的成本。

读取容量单位取决于您需要的读取类型(强烈一致/最终一致),项目大小和您想要的吞吐量。

写入容量单位仅由吞吐量和项目大小决定。

用于计算项目大小,您可以参考this,以下是计算器的屏幕截图 enter image description here