网络与基础设施 · 观点 18

无服务器是一项放置决策:冷启动、隔离与状态

将执行移到调用 API 之后,并不会消除状态或资源选择。它改变的是由谁作出这些选择、哪些内容可以被观测,以及哪些成本会变成间歇性成本。

引用本文

AI 译文可能存在错误,请对照原文核实。

AI 辅助译文 · AI 译文可能存在错误,请对照原文核实。 阅读原文
数学符号、代码、参考文献身份和图内文字保留原始形式。

《无服务器是一项放置决策:冷启动、隔离与状态》的概念性编辑插图
概念插图 · 内置 ImageGen · 非实验证据

摘要

无服务器平台提供了便捷的执行抽象,但仍保留着有关放置、隔离、复用与状态的艰难选择。本综述将一项生产工作负载研究、Firecracker 的虚拟化设计与 SAND 的执行架构联系起来,以区分平台机制和应用层面的结果。基于泊松到达与空闲超时的单实例模型解释了冷启动的一种来源,而一个反例则表明,相同的平均到达率可能产生不同的冷启动比例。随后,扇出示例说明,即使组件的冷启动概率不高,也可能成为应用层面频繁发生的事件。文中图表是解析构造,而非对云提供商的测量。所提出的评估方案将启动分解为调度、隔离、运行时、依赖项与应用阶段,并将外部状态访问视为完成延迟的一部分。核心论点是,复用与放置必须结合隔离和状态语义进行评估,而不能根据一个快速的微型虚拟机启动时间数值来推断。

1. 抽象改变了边界的位置

无服务器调用接口允许应用请求执行,而无须管理一台永久分配给它的机器。它并未消除机器、队列、运行时或状态。仍然有人要选择放置位置、决定执行环境可保持复用的时长,并在突发期间分配稀缺容量。这些决策部分隐藏在平台边界之后。对研究者而言,这既改变了部署便利性,也改变了可观测性。调用时长可能包含应用无法检查的排队时间,也可能不包含用户仍然会感受到的准备时间。可信的性能陈述必须定义其起始和结束事件。在相关生命周期和完成边界得到明确规定之前,“冷启动”并不是完整的测量定义。

2. 各项来源揭示不同的边界

Shahrad 及其同事研究了生产环境中的无服务器函数,以及工作负载特征对资源管理的影响。Firecracker 提出了一种轻量级虚拟化设计,旨在以较低开销支持安全的多租户执行。SAND 探索了一种无服务器应用执行架构,其中包括隔离与通信方面的选择。这些并非针对同一平台、可以相互替代的测量。工作负载研究描述需求,虚拟机监控器提供隔离机制,而应用执行架构则决定工作与状态如何交互。本综述借助这些来源来区分上述层次,不会根据隔离组件的启动行为推断任意语言运行时或依赖繁重的应用的总启动时间。 [1], [2], [3]

3. 最简热复用模型

假设只有一个可复用环境,服务时长可忽略,到达过程是速率为 lambda 的泊松过程,空闲超时 tau 在每次到达时重置。若前一个到达间隔超过 tau,则该次到达为冷到达。服从指数分布的间隔由此给出冷启动概率,即以负 lambda 与 tau 的乘积为指数的指数函数。在这些假设下,存在保留环境的时间比例等于一减去该概率。延长保留时间会减少冷启动,但也会使内存保持分配状态更长时间。该模型不包含并发、横向扩容、计划性驱逐、容量压力和应用故障。其目的是在明确假设下揭示复用的权衡。若将这条曲线视为提供商的保证,就会忽视生产平台必须处理的大多数机制。

4. 平均到达率并不能决定冷启动比例

考虑一百个平均值为十秒的到达间隔。在第一组序列中,每个间隔均为十秒。在第二组序列中,九十个间隔为一秒,十个间隔为九十一秒,因此平均值仍为十秒。空闲超时为二十秒时,第一组序列没有因长间隔而产生的冷到达,第二组则有十次。相同平均到达率下的泊松模型还会预测出另一种比例。附录精确检查了这些计数,并排除了先前状态未指定的首次到达。这个反例之所以重要,是因为容量规划往往从每秒平均请求数出发。复用取决于间隔分布和突发结构,而不仅仅取决于该平均值。

5. 启动是一系列机制组成的过程

一次调用可能需要等待准入、被放置到某个主机、建立隔离边界、加载运行时、导入依赖项、建立网络连接并初始化应用状态。有些阶段相互重叠,有些则串行进行。当另一个阶段占主导地位时,缩短某一阶段的平台改进可能几乎无法察觉。应记录包含具名事件的时间线,而不是将两个定义模糊的时间戳相减。依赖项下载和初始化尤其值得关注,因为它们可能在不同层级被缓存。处于热状态的语言进程仍可能建立一个冷数据库连接,而新建的微型虚拟机可能受益于主机级镜像缓存。实验应说明哪些层被刻意重置,哪些层被允许保留状态。

6. 复用与隔离需要相容的契约

保持环境存活可以保留有用的缓存,但也会保留可变的进程状态。平台必须定义哪些状态可以跨调用保留,以及哪些身份可以共享环境。除非契约明确说明,否则应用不得假设前一次调用的内存必然保留或必然消失。敏感材料应具有明确的生命周期和所有权边界。因此,性能研究应同时报告复用策略和隔离策略。在较弱隔离条件下更积极地复用,对某种工作负载可能是合理的设计选择,但对于需要更强租户隔离的工作负载,这并不是等价的优化。

7. 外部状态可能主导执行

将持久状态移至数据库或对象存储,可以使函数环境更易于替换,但会增加网络操作和一致性要求。若一次快速调用在重试后产生重复副作用,它就不是正确的实现。应定义操作标识,以及涵盖持久性影响的事务边界。缓存命中应与陈旧读取行为及失效处理成本一并测量。当函数图发生扇出时,多个单独较小的状态访问概率可能组合成频繁的应用延迟。在冷事件相互独立的条件下,所需的 n 个组件中至少一个处于冷状态的概率,等于一减去所有组件均处于热状态的概率。共享放置与初始化依赖可能使这一独立性假设失效。

8. 成本与服务目标相联系

保留更多环境会消耗本可用于服务其他租户或减少突发期间排队的内存。积极驱逐可节省空闲资源,但会增加准备工作,并可能违反延迟目标。正确的比较应固定服务目标和输入需求,再测量实现该目标所需的资源成本。可以纳入货币账单,但计费单位和价格独立于物理工作量,而且可能发生变化。因此,本文不比较提供商价格,而是建议报告保留内存与时间的乘积、启动 CPU 用量、传输字节数、外部状态操作和截止期限未达次数。即使平台的商业计费规则发生变化,这些量仍能解释其中的权衡。

9. 可复现的检查与更有力的未来实验

第一幅图绘制了三种到达率下,所声明的泊松冷启动概率随空闲超时的变化。第二幅图针对三种组件冷启动概率绘制了独立扇出的放大效应。附录验证了均值相等的反例与基本概率边界。未使用任何云账户、平台轨迹或生产函数。未来实验应加入并发与准入限制,回放突发型轨迹,并在相同资源预算下比较策略。应对初始化阶段和持久状态操作进行插桩,而不只是测量函数体时长。独立重复运行应随机化工作负载顺序,并披露保留的缓存,否则表面上的改进可能仅仅反映某个策略继承了更热的环境。

10. 精确的无服务器性能论断

有用的论断应说明:哪一种放置与复用策略,在何种到达、隔离和状态假设下,满足何种完成目标。它应区分隔离原语的改进与完整应用的改进,还应报告策略失效的情形:超过保留容量的突发、依赖项缓存未命中、状态服务中断,或阻止复用的身份边界。这里的解析模型被刻意保持在足够小、可供检查的规模。它们的作用是防止缺失的假设隐藏在一个诱人的延迟数值中。下一步是开展受控的平台实验,将本文方程用作合理性检查,而不是替代观测到的行为。

已在本地执行 · 范围有限

相同的平均到达率,不同的冷启动比例

单个环境、可忽略的服务时间,以及明确声明的到达间隔;排除首次到达。

2 项断言通过。 这些检查验证的是所提供的示例,而非所引用的系统。

检查已记录的见证实例
{
  "mean_gap": 10,
  "timeout": 20,
  "regular_cold": 0.0,
  "bursty_cold": 0.1,
  "Poisson_prediction": 0.1353352832366127
}

明确声明的解析模型

四个方程,明确的假设

Pcold=P(G>τ)=e−λτP_{\mathrm{cold}}=P(G>\tau)=e^{-\lambda\tau}

(1) 泊松到达、单个保留环境、可忽略的服务时间、到达时重置空闲超时,且不存在其他驱逐。

fretained=1−e−λτf_{\mathrm{retained}}=1-e^{-\lambda\tau}

(2) 同一理想化模型中的稳态保留时间比例;排除并发和环境创建时间。

E[L]=Lwarm+PcoldΔLE[L]=L_{\mathrm{warm}}+P_{\mathrm{cold}}\Delta L

(3) 具有固定冷启动惩罚的双分量均值;并非关于尾延迟或队列交互的陈述。

P(at least one cold component)=1−(1−p)nP(\text{at least one cold component})=1-(1-p)^n

(4) 独立且同分布的冷事件,以及需要全部 n 个组件的应用。

构造示例 · 可复现数据

检查定量论证

这些曲线由所声明的模型计算得出,并非来自所引用研究的观测。每幅图均附有数值数据和矢量版本。

空闲保留改变了一个简单的冷启动概率。泊松到达、单个环境、可忽略的服务时间、每次到达均重置超时,且不存在其他驱逐。排除并发与横向扩容。
图 1。空闲保留改变了一个简单的冷启动概率。 泊松到达、单个环境、可忽略的服务时间、每次到达均重置超时,且不存在其他驱逐。排除并发与横向扩容。
函数图放大了冷组件的影响。冷事件独立且同分布,并要求所有组件完成。排除共享放置、依赖项缓存及相关联的驱逐。
图 2。函数图放大了冷组件的影响。 冷事件独立且同分布,并要求所有组件完成。排除共享放置、依赖项缓存及相关联的驱逐。

哪些证据回答哪些问题?

边界有用的事件对重要的隐藏状态
准入从到达到调度决策队列与容量限制
隔离从创建请求到环境可运行主机镜像与内存缓存
运行时从进入运行时到依赖项就绪导入项与编译产物
应用从操作被接受到持久完成连接、缓存与幂等性记录

建议的验证方案

这是一个拟议的评估设计。未开展生产系统或硬件基准测试。单独执行的有限模型记录在可执行检查中。

  1. 声明调用、身份、状态与完成契约。
  2. 记录到达间隔分布、并发度与突发结构。
  3. 分别对准入、隔离、运行时初始化和应用初始化进行插桩。
  4. 在匹配的服务目标和资源预算下比较策略。
  5. 除延迟外,还应检查故障情况下的重试与持久性影响。
  6. 公布缓存重置规则、独立重复实验及保留状态假设。

一手来源确立了什么

Mohammad Shahrad, Rodrigo Fonseca, Inigo Goiri et al. · 2020 [1]

贡献。 生产函数工作负载为资源管理和复用决策提供依据。

边界。 本文未复用任何生产轨迹或工作负载数值统计。

来源定位。 USENIX ATC 2020 论文、摘要与工作负载的研究框架。

Alexandru Agache, Marc Brooker, Andreea Florescu et al. · 2020 [2]

贡献。 轻量级虚拟机监控器应对隔离与执行开销问题。

边界。 微型虚拟机启动只是应用启动的一个组成部分。

来源定位。 Firecracker,架构与设计目标。

Istemi Ekin Akkus, Ruichuan Chen, Ivica Rimac et al. · 2018 [3]

贡献。 无服务器执行架构对隔离与通信作出明确选择。

边界。 其设计并未消除应用状态语义。

来源定位。 SAND,架构描述。

本分析的局限

  • 泊松模型省略了横向扩容、排队和容量驱动的驱逐。
  • 序列反例是构造的,并非生产工作负载。
  • 未对任何云平台或价格进行基准比较。
  • 独立的组件冷启动概率未涵盖共享初始化或相关联的放置。

本综述聚焦于三项选定的基础性一手来源,进行解析性审视,并提供原创演算示例。它不是对截至 2026 年文献的穷尽式或系统性综述。来源访问范围与版本说明随参考文献一并记录。

可能改变结论的问题

  1. 除了平均到达率,哪些轨迹特征能够预测冷启动风险?
  2. 复用策略如何将租户隔离表达为硬约束?
  3. 平台能否公开足够的生命周期事件,使端到端启动论断可接受独立审计?

参考文献

  1. Mohammad Shahrad, Rodrigo Fonseca, Inigo Goiri et al.. Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider. USENIX ATC (2020). Primary source.
  2. Alexandru Agache, Marc Brooker, Andreea Florescu et al.. Firecracker: Lightweight Virtualization for Serverless Applications. USENIX NSDI (2020). Primary source.
  3. Istemi Ekin Akkus, Ruichuan Chen, Ivica Rimac et al.. SAND: Towards High-Performance Serverless Computing. USENIX ATC (2018). Primary source.

来源 [1] 的访问范围。 一手记录、摘要及选取的可访问文本;并非对全文或补充材料的穷尽式审计。

来源 [2] 的访问范围。 一手记录、摘要及选取的可访问文本;并非对全文或补充材料的穷尽式审计。

来源 [3] 的访问范围。 一手记录、摘要及选取的可访问文本;并非对全文或补充材料的穷尽式审计。

已对照 Crossref 以及出版商、作者或机构的一手记录核查书目身份。下方的来源访问与版本说明描述了核查范围;这不是穷尽式全文审计。

作者与来源

由 Codex(AI)撰写并进行技术自审。参考文献标明原始研究者;解析构造与拟议评估设计归属于本文。

封面为 ImageGen 概念插图。技术图表由明确声明的模型或有限示例计算而得,并提供 Python 与 CSV。它们不是已部署产品的测量结果,也不是复现的性能基准测试。

这份本地草稿没有独立同行评审或期刊录用记录。范围有限的可执行示例检查了所述小型模型;它们并非对所引用系统的形式化验证。

委托研究综述 · v5. 引用本文 · 原始来源记录 · 发布记录