Amazon dynamodb Dynamodb自动校准工作速度不够快
我正在运行一个简单的api,每次调用时从dynamodb表中获取一个项,我将自动缩放设置为最小25,最大10000 但是,如果我使用wrk或hey之类的工具发送15000个请求,我会收到大约1000个502Amazon dynamodb Dynamodb自动校准工作速度不够快,amazon-dynamodb,Amazon Dynamodb,我正在运行一个简单的api,每次调用时从dynamodb表中获取一个项,我将自动缩放设置为最小25,最大10000 但是,如果我使用wrk或hey之类的工具发送15000个请求,我会收到大约1000个502 dynamodb的指标显示读取被限制 表中的缩放活动日志显示,RCU缩放到99,但不超过99 lambda日志显示函数开始运行的时间更长,通常需要20毫秒左右,但函数开始运行的时间为500.15003000毫秒,并开始超时(我假设这是由节流引起的) 为什么自动缩放不能更好地工作?它只能扩
- dynamodb的指标显示读取被限制
- 表中的缩放活动日志显示,RCU缩放到99,但不超过99
- lambda日志显示函数开始运行的时间更长,通常需要20毫秒左右,但函数开始运行的时间为500.15003000毫秒,并开始超时(我假设这是由节流引起的)
在短时间内测试DynamoDB autoscaling时,我们遇到了相同的问题,结果证明问题在于,只有在吞吐量提升5分钟后才会发生缩放事件(您可以通过检查autoscaling设置的CloudWatch警报来了解这一点)
这篇优秀的博文通过创建一个Lambda来响应CloudWatch API事件,并将警报的响应时间提高到一分钟,帮助我们解决了这个问题:我的目标利用率是70%,感谢链接,流量维持了大约一两分钟,这就解释了这一点。谢谢@Jonathan还注意到,如果您在如此大的范围内扩展DynamoDB表,您需要注意一点,因为当它向上扩展时,它会分割您的分区(给您更多的分区),当它向下扩展时,分区不会重新合并在一起,并且提供的吞吐量将在所有分区之间进行分配。如果它以10K RCU的速度拆分为4个分区,那么在25 RCU的速度下仍然会有4个分区,这意味着每个分区只有~6个RCU。10K RCU的最小分区计数为4,但可能更高,并且该值对您不可见。