VPC澄清中的AWS Lambda ENI限制

问题描述 投票:1回答:2

我在lambda的AWS官方文档中找到了这个:

如果您的Lambda函数访问VPC,则必须确保您的VPC具有足够的ENI容量以支持Lambda函数的比例要求。您可以使用以下公式来近似确定ENI要求。

预计峰值并发执行*(内存以GB / 3GB为单位)

我理解这个公式背后的原因。我唯一的问题是:为什么3GB?这个号码来自哪里?

amazon-web-services networking aws-lambda cloud aws-vpc
2个回答
4
投票

公式预计峰值并发执行×(GB / 3GB内存)是对实际(但未说明)问题的答案的代理“Lambda需要分配多少个m级(通用)EC2实例才能容纳所需数量的这种尺寸的容器?“

AWS Lambda使用与通用Amazon EC2实例类型(例如M3类型)相同的比率来分配与内存成比例的CPU功率。

https://docs.aws.amazon.com/lambda/latest/dg/resource-model.html

这个比例是“相同的”,因为M3 ......或者与它非常类似的东西......是Lambda实际上用来托管你的容器的东西。

m3.medium是m3系列中最小的机器,具有3.75GB的RAM ...因此lambda需要提供的这种类型的EC2 VM的数量 - 以及因此需要的ENI数量 - 约为n×(m / 3GB)。该实例可以托管(例如)大约2×1.5GB或24×128MB或1×3.0GB容器,为VM内的操作/管理开销留出一些空间。

可能涉及多少开销,以及Lambda在放置和选择容器时使用的算法,以及Lambda是否使用实例大小的混合以及在什么规则下......都是Lambda黑盒子的一部分。逻辑将决定Lambda将从较小的实例开始并随着并发性的增长而向更大的实例发展,因为较大的实例(在同一系列中)将允许更高的打包效率而不会降低性能(因为内存和CPU是专用的,以固定的比率,每个容器),特别是对于大型和奇怪大小的容器。这个公式表明它不是容器接收ENI而是实例......并且在大小为m GB的并发n下,Lambda将分配大约n×(m / 3GB)个实例。


1
投票

3GB是单个lambda函数的最大内存分配。 https://docs.aws.amazon.com/lambda/latest/dg/limits.html

© www.soinside.com 2019 - 2024. All rights reserved.