知识卡片
冷启动的本质原因
内容
FaaS平台上,开发者提交的代码在没有被触发之前只会被持久化存储,不会预先准备好可执行的运行环境。 当一个请求到来时,如果没有可复用的空闲实例(热启动),平台就必须现场打通网络、下载代码和依赖、 初始化运行时,这整个”从零准备环境到函数真正开始执行”的过程就是冷启动,通常是百毫秒到秒级,而 热启动是毫秒级。也就是说冷启动不是某个厂商实现得不好,而是”函数默认不常驻、按需拉起”这个设计 本身带来的必然代价——免运维和弹性伸缩的收益,天然要用启动延迟去交换。发散:这和很多”按需付费” 系统是同构的(比如按需扩容的数据库连接池、Serverless容器编排),只要资源不是常驻的,冷启动就 不可能被彻底消灭,只能被摊薄或转移到看不见的地方。
参考来源
《Serverless工程实践:从入门到进阶》第1章《什么是Serverless》