首页 > 解决方案 > AWS Lambda 函数增加 Max Memory Used

问题描述

我有一个内置于 .NET Core 2.1 的 AWS Lambda 函数。这是由 SQS 队列触发的。

此函数的最大内存为 512MB,超时时间为 2 分钟。

查看 CloudWatch 日志,我看到在执行一定次数后,Max Memory Used 有所增加。请参阅下面的图片:

在此处输入图像描述 在此处输入图像描述

在执行一些操作后它不断增加,从 217MB 到 218MB,之后到 219MB 等等。此功能运行多次且频率很高。

有人在 AWS Lambda 上遇到过这个问题吗?提前感谢您的帮助。

标签: c#amazon-web-services.net-coreaws-lambda

解决方案


这是假设您的代码中的某个地方没有错误,并且您正在处理相同数量的工作......

AWS Lambda 让您的应用程序代码实例运行一段时间,以确保对它的后续请求是快速的,因此这可能只是垃圾收集尚未在运行您的代码的进程上运行的问题。

相反,当您的应用程序甚至不使用 256MB 时,我更关心的是支付 512MB。请记住,您无需为使用的内容付费,而是为分配的内容付费。

编辑:根据水泥块的评论,请记住,更改内存分配会影响您的 CPU 和网络共享。


推荐阅读