首页 > 解决方案 > AWS Lambda 非常缓慢地耗尽 SQS 队列

问题描述

我有一个 SQS 队列和一个 lambda,它们使用批量大小为 10 的队列。

拉姆达

预留并发 = 600

超时 = 15 分钟

内存 = 640 MB(但每次执行使用 150-200 MB)

处理来自队列的一项大约需要 10 秒。

SQS

可用消息(可见):5,310

飞行中的消息(不可见):3,355

默认可见性超时:20 分钟

使用这些设置,我希望我的 Lambda 函数被调用 600 次,因为您看到队列已满,并且有从队列中接收的项目。因此,该函数不应处于空闲状态并使用所有可用的并发性。

我知道突发的前 1 分钟,然后我的并发性将每分钟增加一次,直到达到极限。但我的调用次数总是在 40-80 之间。永远不会达到 600 并且我的队列非常缓慢地耗尽。并且(根据日志)几乎所有队列项目都失败了,因此它们不会再次返回队列。

我的设置有什么问题?

在此处输入图像描述

编辑:还有另一个图表: 在此处输入图像描述

一下子涨了,又跌了。。

标签: amazon-web-servicesaws-lambdaamazon-sqs

解决方案


推荐阅读