use*_*676 21 amazon-web-services aws-lambda amazon-ecr
如果我使用 ECR 中的图像而不是 S3 中的 jar 作为源代码,AWS Lambda 函数的冷启动是否会花费更长的时间?我认为是的,因为由于额外的操作系统层,图像更大(尽管......常规 Lambda 也应该有一些操作系统层),但我找不到任何性能基准。
谢谢!
nit*_*jri 17
我对这里其他答案的结论感到惊讶。
这取决于
这篇博文之前链接过,它执行数据测试。从那篇文章:
如果你的函数是纯函数。正如大多数人所说,它的性能会更好(第一张图),但是一旦你的函数更像一个框架,zip 的大小就会增加,所需的只是几兆,而 S3 太慢了。
需要明确的是,您的容器/程序需要具有快速启动时间,但这与大小或 lambda 无关。
第二张图令人难以置信,5GB 容器装载在< 2s.
小智 8
“Lambda 还优化图像并将其缓存在函数运行的位置附近,因此冷启动时间与 .zip 存档相同”来自https://aws.amazon.com/blogs/compute/working-with-lambda-layers -和容器图像中的扩展/
是的,您将有更长的冷启动时间,从而导致更长的响应时间。
它实际上取决于您从 ECR 下载的映像,但一般来说,它会更慢,因为使用 Docker 容器而不是 Lambda 为您管理运行时环境(这减少了启动新执行所需的时间)冷 Lambda 环境)。
主要原因是ECR 映像的大小,这也是大型 Lambda ZIP 档案受到限制的原因。
您可以在此处查看大小将如何影响冷启动期间运行的 2 个任务,AWS 将其定义为“下载代码并启动新的执行环境”。
我建议您绝对使用托管运行时而不是容器,除非您需要使用它们,因为它将自动导致更快的执行速度。
Docker 镜像冷启动肯定会更慢。这是因为更大的尺寸和额外的操作系统。Lambda 将您的代码加载到其托管环境中,而不是加载整个 docker 映像。
参考链接:比较 docker 与本机 java lambda 的一些图表: https: //mikhail.io/serverless/coldstarts/aws/
有关 lambda 容器的其他信息: https://chariotsolutions.com/blog/post/getting-started-with-lambda-container-images/
| 归档时间: |
|
| 查看次数: |
10948 次 |
| 最近记录: |