我遇到Dynamo的问题,其中读取吞吐量远低于预设容量而图中没有任何可见的限制。
我的表格有100GB的数据类似于:
| Partition Key | Sort Key | Value
| A | A1 | 1
| A | A2 | 21
| A | A3 | 231
...
| A | A200 | 31
| B | B1 | 5
此结构不能改变太多,因为我可以查询与给定键关联的所有值(以及基于与给定分区键关联的排序键的更复杂查询)。 。 这导致我限制写入,因为它必须频繁地击中相同的分区,但真正奇怪的是读取吞吐量。该表配置了1000个读取单元,但最大记录吞吐量为每秒600个读取。这与每秒高达10.000个预配读取单位一致。
在客户端,我每秒发送1000个请求(统一使用速率限制器),因此从理论上讲,读取吞吐量应为每秒1000次读取。即使客户端的请求数量增加,速率也保持不变,并且没有限制读取。
客户端在与Dynamo相同的区域中的EC2 m4.2xlarge实例上运行。我已经排除了客户端的问题,因为CPU使用率相当低,并且有足够的可用内存。
有关可能导致此问题的任何想法?
答案 0 :(得分:0)
每件商品的数据量可能会影响RCU。
一个读取容量单位代表一个强烈一致的读取 对于一个项目,第二个或两个最终一致的读取每秒 到4 KB的大小。如果您需要读取大于4 KB的项目, DynamoDB需要消耗额外的读取容量单位。该 所需的读取容量单位总数取决于项目大小, 以及您是否希望最终一致或强烈一致 读取。
您需要检查是否使用了一致性读取以及每次读取时获取的数据量。
答案 1 :(得分:0)
一些想法