SPRIGHT: extracting the server from serverless computing! high-performance eBPF-based event-driven, shared-memory processing

SPRIGHT: extracting the server from serverless computing! high-performance eBPF-based event-driven, shared-memory processing
复制标题

DOI:
10.1145/3544216.3544259
复制
发表时间:
2022-08
期刊:
Proceedings of the ACM SIGCOMM 2022 Conference
影响因子:
--
通讯作者:
Shixiong Qi;Leslie Monis;Ziteng Zeng;Ian Wang;K. Ramakrishnan
Shixiong Qi;Leslie Monis;Ziteng Zeng;Ian Wang;K. Ramakrishnan
中科院分区:
其他
文献类型:
--
作者:
Shixiong Qi;Leslie Monis;Ziteng Zeng;Ian Wang;K. Ramakrishnan

文献摘要

被引文献

相似文献

无服务器计算承诺在云环境中提供高效、低成本的计算能力。然而,以Knative等开源平台为代表的现有解决方案包含了重量级组件,这些组件破坏了无服务器计算的目标。此外,这种无服务器平台缺乏数据平面优化,无法实现高效、高性能的功能链,从而促进流行的微服务开发范式。它们使用不必要的复杂和重复的功能来构建功能链,严重降低了性能。“冷启动”延迟是另一个阻碍因素。我们描述了SPRIGHT,一个轻量级、高性能、响应式的无服务器框架。SPRIGHT利用共享内存处理,通过避免不必要的协议处理和序列化-反序列化开销,极大地提高了数据平面的可伸缩性。SPRIGHT广泛利用扩展的伯克利包过滤器(eBPF)的事件驱动处理。我们创造性地使用eBPF的套接字消息机制来支持共享内存处理,开销严格按负载比例分配。与持续运行、基于轮询的DPDK相比,SPRIGHT在实际工作负载下实现了相同的数据平面性能,但CPU使用率降低了10倍。此外,eBPF通过替换重量级的无服务器组件使SPRIGHT受益,允许我们以微不足道的代价保持功能的“温暖”。我们的初步实验结果表明,与Knative相比,sprright在吞吐量和延迟方面实现了数量级的改进,同时大大减少了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'.