我目前正在使用AWS lambda使用ffmpeg进行一些简短的视频编码。如果为我的lambda func(当前正在运行的func)配置了现有的容器,那么如果我再次调用它,它是否可能会使用这个现有的容器?
这会大大增加我的函数运行时间,因为我将在容器中执行两个或更多cpu繁重任务而不只是一个。
如果这是真的,是否可以在新容器中启动lambda func?
lambda保证每个函数都有一定的内存分配是有道理的,但是如果函数是cpu绑定的,那么如果同时使用容器,容器是不是会有瓶颈?
我已查看https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/。
谢谢!
答案 0 :(得分:2)
AWS Lambda函数在一个容器中执行,该容器将它们与其他函数(可能是您的函数)隔离开来。多个Lambda调用不会同时使用给定容器。
如果没有加载代码的现有容器可以自由运行,则启动一个新容器('冷启动')。将代码加载到其中的给定容器可以重用于后续调用,但仅限于先前的调用已完成(“热启动”)。
你不能强迫Lambda冷启动,而不能强迫它冷启动。它使用自己的调度算法,基于您对调用历史的了解以及对当前和未来工作负载的期望。
分配的CPU与配置的RAM成比例,因此只需相应地配置RAM。
有关Lambda中容器重用的更多信息,请参阅this blog post。