【发布时间】:2020-06-06 11:49:05
【问题描述】:
我有几个 AWS Lambda 函数,但故障排除只针对其中一个。这个 Lambda 函数由消息队列触发,读取 DynamoDB,处理,写入 DynamoDB。它每秒最多调用 10 个请求,并且我设置了 Lambda 配置并发。平均 Lambda 持续时间是 60 毫秒,我对此非常满意。但是每天大约有 10 个 Lambda 函数持续时间超过 1 秒到 3 秒超时的实例。
我在我的 Lambda 中输入日志,在持续时间高峰期间,读/写 (getitem/putitem) DynamoDB 耗时超过 1 秒。 Dynamodb 设置为按需。这是一个非常简单的表,两列,ID(自动编号)和一个 json 字符串(大约 1KB)。我已经尝试过 Redis,但很奇怪,仍然有尖峰。 Lambda 没有放在 VPC 中。 Dynamo 连接已设置为 http 超时 500,最大重试次数为 2。
读取 DynamodDB 的代码:
日志持续时间:
【问题讨论】:
-
作为测试,如果将 Lambda 函数的 RAM 大小增加到最大,这个问题会消失吗?
-
不完全。随着 RAM 大小的增加,我可以看到平均持续时间下降。但是尖峰仍然存在,尽管不确定频率是否下降。谢谢。
标签: amazon-web-services aws-lambda duration