论文Ephemera:Accelerating I/O-Intensive Serverless Workloads with a Harvested In-memory File System被ACM Transactions on Architecture and Code Optimization(CCF A)期刊接收,恭喜凌啸!
论文主题内容介绍
研究背景
无服务器计算因其简化服务器管理的特性而日益普及,但随着任务类型的多样化,尤其是对于 I/O 密集型工作负载而言,高效的文件 I/O 性能变得越来越重要。然而,现有方法在处理临时存储时通常引入显著的延迟,并且未能充分利用函数执行环境中的内存资源。该论文基于对无服务器计算平台内存资源未得到充分利用的观察,提出利用结合内存共享的内存文件系统来提高 I/O 效率的优化系统。
解决方案
论文提出了 Ephemera 系统,旨在通过利用分配但未充分使用的内存空间,为无服务器计算中的临时存储提供高效的访问和优化内存利用。Ephemera 通过实现一个内存文件系统,将文件 I/O 操作转换为内存操作来加速处理,并结合内存共享和工作负载调度机制来进一步提升整体性能和资源效率。
设计概述
Ephemera 系统的设计满足了透明内存 I/O 集成、异构任务资源协同和协调集群工作负载编排三个目标。其架构从上到下包含三个核心组件:集群控制器(Cluster Controller)、租户管理器(Tenant Manager)和运行时守护程序(Runtime Daemon)。

运行时守护程序(Runtime Daemon)集成在每个函数运行时中,负责在容器内管理一个内存文件系统。它透明地拦截函数的文件 I/O 调用,并将这些请求导向其内部实现的内存文件系统。该文件系统利用函数运行时中分配的闲置内存空间存储文件数据,通过 mmap 技术加速文件访问。内存适配器(Memory Adapter)则持续监控函数的内存使用情况,并根据实际需求动态调整内存文件系统的大小,防止内存溢出。

租户管理器(Tenant Manager)在集群中的每个节点上为每个租户运行,负责协调和促进同一租户内不同函数实例间的内存资源共享。它维护一个容器池(Container Pool),根据函数实例的内存需求和使用模式将其分类到 harvest pool 或 allocation pool,从而实现动态内存共享,优化资源利用。此外,管理器包含一个保障机制(Safeguard),能在检测到内存短缺时强制回收内存,确保系统稳定性。
集群控制器(Cluster Controller)位于集群的顶层,负责处理函数部署和调用请求,并进行全局的工作负载协调。在部署阶段,分析器(Profiler)会对函数进行性能分析,获取其内存使用和文件 I/O 特征。在调用阶段,调度器(Scheduler)根据节点的当前工作负载状态以及之前分析获得的函数模式,通过贪心算法将请求分派到合适的节点,以实现内存资源的有效平衡和集群工作负载的优化。
实验结果
在自建的无服务器集群上进行的实验表明,与传统文件系统相比,Ephemera 在处理 I/O 密集型任务时显著提高了性能。具体来说,Ephemera 平均将文件 I/O 处理时间减少了 50%,在某些特定场景下,延迟降低高达 95.73%,而引入的额外开销可以忽略不计。实验还验证了 Ephemera 在动态内存管理、租户级内存共享和集群级调度方面的有效性,展示了其增强内存利用率的能力。
金凌啸个人介绍
- 本科毕业院校:上海交通大学
- 研究方向:Severless范式,资源管理
- 荣誉奖励:
- 2020年ACM-CCPC中国大学生程序设计竞赛绵阳站金奖
- 2020年ACM-ICPC国际大学生程序设计竞赛上海赛区金奖
- 2022年华为第六届云核编程大赛亚军
- 2023年上海交通大学“校优秀毕业生”
- 2021年上海交通大学学生社会实践“先进个人”