【发布时间】:2018-05-15 14:31:05
【问题描述】:
我正在使用无服务器框架。我的 Lambda 函数连接到 DynamoDB 表以更新表中的项目。表的读写容量单位为 5,并且禁用了 auto_scaling。 AWS Lambda 函数分配了 128MB 内存。
我使用 Jmeter 进行性能测试。我同时发送了 1000 个请求,一些响应给了我完美的输出,而另一些则给了内部服务器错误(502 Bad Gateway)。我还分析了 cloudwatch 的日志,只得到任务超时错误。谁能建议我为什么会收到此错误以及如何解决?
【问题讨论】:
-
您的池中有多少个连接?也许池没有足够的连接并且某些任务正在超时?
-
@Mike Dinescu 有一个非常彻底的答案,但以防万一,您使用的是什么运行时?如果在节点中,您可能需要设置
context.callbackWaitsForEmptyEventLoop = falsedocs.aws.amazon.com/lambda/latest/dg/… -
是的 @JustinKruse 我正在使用 nodejs
-
你能解决这个问题吗?我们必须设置
context.callbackWaitsForEmptyEventLoop,所以我们没有等待网络事件或数据库连接等事情在返回之前被清理,否则我们总是会达到这个 6 秒超时 -
是的 @JustinKruse 我已经通过增加 DynamoDB 的读写容量单位解决了这个问题。
标签: amazon-web-services lambda amazon-dynamodb serverless-framework api-gateway