amazon-web-services - Lambda 未报告正确的内存使用情况
问题描述
我正在运行一个分配有 128mb 内存的 aspnetcore 2.1 Lambda。当我运行 Lambda 时,它会执行 15 秒(我的超时时间),然后以Task Timeout
. 它报告说我在为其分配的 128mb 内存中消耗了 56mb 内存。
如果我将 ram 提升到 192 或 256mb,它会在 1 秒内毫无问题地运行。它报告说消耗了相同数量的 ram,但现在的上限更高。如果我消耗的内存不到我分配的 50%,为什么我会看到执行停止?
是否为整个容器分配内存,而不仅仅是在其中执行的 Lambda?我假设我指定的内存是分配给我的进程在容器内运行的内存。不是这样吗?如果此内存分配与容器内的其他资源共享,亚马逊是否会发布其容器的内存使用情况,以便我可以更好地估计?
解决方案
您只需指定要为 Lambda 函数分配的内存量。AWS Lambda使用与通用 Amazon EC2 实例类型(例如 M3 类型)相同的比率分配与内存成比例的 CPU 功率。例如,如果您分配 256 MB 内存,您的 Lambda 函数将获得两倍于仅分配 128 MB 的 CPU 份额。
因此,您的函数运行得更快,因为在为它们提供额外内存的同时,您还提供了额外的 CPU。
所有分配的 RAM 和 CPU 仅分配给您的 Lambda 函数。该功能不会被任何其他功能、容器、用户或网络共享或影响。
推荐阅读
- c# - 如何在c#中有效地比较两个十进制值
- java - 使用 LambdaMetafactory 线程进行动态方法调用是否安全?
- azure-iot-hub - 使用按记录分组的最后 5 条记录的多维数组调用 Azure 流分析 UDF
- firebase - 如何在 Flutter 中从 Firebase 存储中获取相关图像
- javascript - 默认值作为国际化字符串是否会使组件不纯?
- php - 将 file.php 重命名为自定义单词
- ms-access - 具有多个条件的 Dlookup 返回相同的结果
- python - 线性回归模型中的错误,它不适用于数据帧。如何解决这个问题?
- ggplot2 - ggplot:如何将我的图例信息放在 xaxis 下方?
- python - jinja2.exceptions.TemplateSyntaxError: 意外字符 '\\'