[网络领域顶会追踪系列#34][SIGCOMM'22]SPRIGHT:从无服务计算中抽离服务器!基于eBPF的高性能事件驱动和共享内存处理
本系列为个人论文阅读笔记,大多数应该是对顶会摘要的个人菜鸟翻译,旨在让感兴趣的朋友能快速浏览、获取信息。如有错误或心得,欢迎在评论区交流指正!
SPRIGHT: Extracting the Server from Serverless Computing! High performance eBPF-based Event-driven, Shared-memory Processing
作者单位:University of California, Riverside, CA
背景
无服务计算在云环境上保证了一种高效、低开销的计算能力。
挑战
然而,现有的解决方案,被开源平台如Knative集成,包含了破坏无服务计算的这个目标的重量级组件。
此外,这样的无服务平台缺少数据面的优化,以实现可促进著名的微服务开发范例的高效、高性能的服务链。它们使用的用于构建服务功能链的没必要的复杂和重复的能力严重地降低了性能。
工作
作者设计了SPRIGHT,一种轻量级、高性能、响应式的无服务框架。
SPRIGHT利用共享内存处理,并且戏剧性的通过避免没必要的协议处理和序列化/反序列化开销,提升了数据面的扩展性。
SPRIGHT广泛地使用eBPF进行事件驱动的处理。作者创造性的使用eBPF的socket消息机制来支持共享内存处理,其开销严格的与负载成比例。
在真实的负载下,与不间断的运行、基于轮询的DPDK相比,SPRIGHT能够在使用10倍少的CPU使用量的情况下,实现相同的数据面性能。
除此之外,eBPF通过代替重量级的无服务组件让SPRIGHT变好,让作者能够在开销可以忽略的情况下,保持函数“暖”(warm)。
实验
作者的初步实验结果表明,与Knative相比,SPRIGHT在吞吐和时延上有一个数量级的提升,同时实质上减少了CPU的用量,并且避免了“冷启动”的需求。
原文摘要
Serverless computing promises an efficient, low-cost compute capability in cloud environments. However, existing solutions, epitomized by open-source platforms such as Knative, include heavyweight components that undermine this goal of serverless computing. Additionally, such serverless platforms lack dataplane optimizations to achieve efficient, high-performance function chains that facilitate the popular microservices development paradigm. Their use of unnecessarily complex and duplicate capabilities for building function chains severely degrades performance. 'Cold-start' latency is another deterrent.
We describe SPRIGHT, a lightweight, high-performance, responsive serverless framework. SPRIGHT exploits shared memory processing and dramatically improves the scalability of the dataplane by avoiding unnecessary protocol processing and serialization-deserialization overheads. SPRIGHT extensively leverages event-driven processing with the extended Berkeley Packet Filter (eBPF). We creatively use eBPF's socket message mechanism to support shared memory processing, with overheads being strictly load-proportional. Compared to constantly-running, polling-based DPDK, SPRIGHT achieves the same dataplane performance with 10× less CPU usage under realistic workloads. Additionally, eBPF benefits SPRIGHT, by replacing heavyweight serverless components, allowing us to keep functions 'warm' with negligible penalty.
Our preliminary experimental results show that SPRIGHT achieves an order of magnitude improvement in throughput and latency compared to Knative, while substantially reducing CPU usage, and obviates the need for 'cold-start'.