【发布时间】:2021-05-01 10:23:10
【问题描述】:
我已经阅读了足够多关于无服务器冷启动的论文,但没有找到关于导致冷启动的原因的明确解释。您能从商业和开源平台的角度来解释一下吗?
- AWS Lambda 或 Azure Funtion 等商业平台。我知道它们对我们来说更像是一个黑匣子
- 有 OpenFaaS、Knative 或 OpenWhisk 等开源平台。这些平台是否也存在冷启动问题?
我对冷启动延迟的初步理解是花在启动容器上的时间。容器启动后,如果还没有被杀死,可以重复使用,所以有一个热启动。这种理解真的是真的吗?我尝试从镜像本地运行容器,无论镜像有多大,延迟几乎没有。
图片下载时间也是冷启动的一部分吗?但是无论一个节点发生多少次冷启动,都只需要下载一张图片,所以这似乎没有意义。
也许是一个不同的问题,我也想知道当我们从图像中实例化一个容器时发生了什么?在此阶段是否将可执行文件及其依赖库(例如 Python 库)从磁盘复制到内存中?如果有多个容器基于同一个镜像怎么办?我想应该有多个副本从磁盘到内存,因为每个容器都是一个独立的进程。
【问题讨论】:
-
@VovaBilyachat 谢谢。这看起来仍然类似于拉取图像和实例化容器的过程。但是我还是觉得实例化一个容器不需要太多时间。至少从我使用
docker run的经验来看,我听说 Lambda 和 Azure 会在冷启动上浪费几秒钟。我知道真正的无服务器应用程序比本地容器复杂得多,所以我可以放手。 -
我回家后再输入答案
-
@VovaBilyachat 嗨,Vova,不确定是否仍然可以看到并评论这个问题。抱歉,我的帖子已被某人关闭。我应该在 DevOps Beta Stack Exchange 上提问吗?因为评论有字数限制。
-
是的,你可以,但我认为它已经关闭,因为这个话题很大。
标签: kubernetes azure-functions serverless-framework serverless aws-serverless