中文

Dirigent:轻量级无服务器编排

分布式、并行与集群计算 2024-10-30 v3 操作系统

摘要

尽管函数即服务 (FaaS) 平台可在 10~100 毫秒内在工作节点上初始化函数沙箱,但实际 FaaS 集群中调度函数的延迟却高出数个数量级。当前基于遗留编排系统(如 Kubernetes)构建 FaaS 集群管理器的做法,在集群经历高沙箱频繁创建时会导致调度延迟显著增加,这在 FaaS 中很常见。通用集群管理器使用大量分层抽象和内部组件来管理和 reconciling 集群状态,并通过频繁持久更新。对于 FaaS 这会成为瓶颈,因为集群状态随沙箱在请求关键路径上创建而频繁变化。基于对现有 FaaS 集群管理器性能问题的根本原因分析,我们提出了 Dirigent,这是一个为 FaaS 编排构建的全新系统架构,包含三个关键原则。首先,Dirigent 优化内部集群管理器抽象以简化状态管理。其次,它消除函数调用关键路径上的持久状态更新,利用 FaaS 将沙箱位置抽象化以放宽精确状态重建保证。最后,Dirigent 采用单体控制和数据平面,以最小化内部通信开销并最大化吞吐量。我们将 Dirigent 与最先进的 FaaS 平台进行比较,显示 Dirigent 相对于 AWS Lambda 在生产工作负载的 99 百分位函数调度延迟降低 2.79 倍。Dirigent 可以低延迟每秒启动 2500 个沙箱,这是 Knative 的 1250 倍。

关键词

引用

@article{arxiv.2404.16393,
  title  = {Dirigent: Lightweight Serverless Orchestration},
  author = {Lazar Cvetković and François Costa and Mihajlo Djokic and Michal Friedman and Ana Klimovic},
  journal= {arXiv preprint arXiv:2404.16393},
  year   = {2024}
}