var*_*tec 51 metrics amazon-web-services amazon-dynamodb
在" 如何计算和限制Amazon DynamoDB吞吐量? " 的答案中,有人建议,每当您超过每秒的预配置吞吐量时,DynamoDB会限制请求.然而,这与我的经历相矛盾.
我在表中发布多行,通常行数超过预配置的写入容量.这种情况发生在短暂的爆发中.有一次,我甚至比平均配置容量高出5分钟.OTOH,平均15分钟低于容量.在那段时间里我没有受到任何限制请求.
5分钟平均峰值为8.053,预配容量为6:

15分钟平均峰值远低于预设容量:

那么DynamoDB何时会限制请求?考虑到什么样的平均值?爆发之前突发的容量有多高?
Dan*_*tta 67
DynamoDB旨在确保您的预配置容量每秒可用.如果您为每秒10个1kB读取配置一个表,那么DynamoDB将为您提供足够的容量来处理该吞吐率.此外,DynamoDB有时允许您在短时间内实现超出预配置吞吐量的有限突发.这旨在吸收客户工作量的自然变化.这种爆裂不能得到保证,并且并不总是可用(并且可用爆破的性质可能随时间而变化).正如最佳实践文档中所述,为了获得最佳性能,您应该拥有一个均匀分布的工作负载,该工作负载不会超出您的预配置容量,并在密钥空间内均匀分配负载.然而,
至于配置表的数量,这在很大程度上取决于您的工作量.您可以开始配置80%的峰值,然后根据您收到的节流量(您可以在CloudWatch图表中看到)调整您的表容量,以及您的应用程序对重试引起的延迟的容忍度.请记住,DynamoDB不允许超出您的预配置容量的无限突发.您可能能够吸收短时间突发,但是您无法在较长时间内维持高于预设容量级别的吞吐率.我们可以给出的一般指导是提供接近峰值的东西,然后在观察油门时拨号.
免责声明:我在亚马逊,DynamoDB团队工作.
Ben*_*erg 17
DynamoDB文档中有一个提示,解释了突发的工作原理:
当您未充分利用分区的吞吐量时,DynamoDB会保留一部分未使用的容量,以便以后突发吞吐量使用.DynamoDB目前保留了五分钟(300秒)未使用的读写容量.
但它也说你不能依赖这种行为:
但是,不要设计您的应用程序,以便它依赖于始终可用的突发容量:DynamoDB可以并且确实使用突发容量进行后台维护和其他任务,恕不另行通知.
至少这可以解释为什么平均5分钟可能高于预配容量.通过上面的解释,如果你在间隔的最开始时有一个尖峰,并且在开始之前的300秒内使用较少,那么甚至可以使15分钟的平均值(或更长的时间跨度)高于预设容量.间隔.
| 归档时间: |
|
| 查看次数: |
19339 次 |
| 最近记录: |