Serverless 进阶实战课
静远
某大厂资深云原生技术专家
11937 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 29 讲
Serverless 进阶实战课
15
15
1.0x
00:00/00:00
登录|注册

04|冷启动:如何加快函数的第一次调用过程?

你好,我是静远。
前面几讲,我们基本上都是在谈 Serverless 的“好处”或者如何“用好”Serverless。那么 Serverless 有没有不完美的地方呢?
带着这个问题,我今天就来跟你聊聊它的一个瑕疵——“冷启动(Code Start)”。这个问题比较重要,为什么呢?因为不论是面对私有化企业还是公有云上的客户,大家首先问到的,通常都是和冷启动相关的函数性能问题。冷启动关乎到服务的时延等稳定性问题,进而会影响到用户使用服务的体验。在“即时时代”的今天,这是一个不可忽视的问题。
这节课,我将通过分析冷启动存在的原因、冷启动的过程,从平台和开发者的角度,带你了解如何加速函数的启动,掌握这里面的优化手段。

冷启动是什么?

在前面的课程中,我们知道,当请求被调度到函数实例上时,如果这个函数实例在上一次执行完代码后没有被回收,那么接收到请求后只需要复用这个实例进行代码的执行即可,这个过程被称为热启动过程。
如果服务是首次请求,或者是容器实例在服务请求后被回收了,就会触发冷启动。那么,冷启动具体是怎么工作的呢?

冷启动都有哪些步骤?

业界中,云厂商或者开源项目因为优化手段的不同,导致冷启动耗时或多或少会有些不一样,但基本的原理是差不多的。我们看一下冷启动都有哪些步骤。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了Serverless架构中的冷启动问题,从冷启动的过程、影响因素以及优化手段进行了详细分析。冷启动包括容器创建、代码下载、VPC网络准备等步骤,而影响冷启动时长的因素主要包括资源调度、代码下载和VPC网络打通等。文章介绍了平台侧和用户侧的优化手段,如镜像加速、压缩包暂存、合理控制代码包大小、选择性能较高的运行时等方法。这些优化手段旨在帮助读者更好地理解冷启动问题,并为开发者和平台提供实用建议。通过对冷启动的优化手段的全面讨论,本文为对Serverless架构感兴趣的读者提供了深入了解和应用的指导。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Serverless 进阶实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 小垚
    老师,我还想到一种方法,比如将关系不是很紧密的业务逻辑,拆解成多个函数是不是也可以?

    作者回复: 非常棒,可以的,关于函数拆分已经之间的协作,我会在第8讲细聊,欢迎继续关注后续文章更新哦

    2022-09-05归属地:上海
    5
  • yungoo
    有没有从开发框架层面设计和优化的例子?

    作者回复: 嗯嗯,昨天也有一个同学问到类似的问题,关于java Springboot的优化,我在开篇词的留言中给了答复,比如Graal VM用在了弹性的容器服务上效果就不错,启动速度很快,考虑到循序渐进,冷启动先从常用的手段和机制跟大家分享,后面看看是否通过加餐的形式来跟大家一起探讨一下比较关注的一些细分点。不过,框架层面的东西因人而异,我们也在持续研究试点中。欢迎一起交流探讨。

    2022-09-08归属地:上海
  • 静远
    同步业界最新的研究成果,华为云提出的基于进程级快照的冷启动加速方案,其核心技术依托于 CRIU,并基于Restore Hook 的机制来确保三方组件的刷新(如消息队列、数据库、分布式缓存等)的状态链接,感兴趣的可以通过华为云的函数计算平台进行体验,并进一步了解调研其核心技术的做法。
    2023-01-16归属地:上海
    2
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部