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 imes $ 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’.
无服务器计算在云环境中有望提供高效、低成本的计算能力。然而,以Knative等开源平台为代表的现有解决方案包含一些重量级组件,这破坏了无服务器计算的这一目标。此外,此类无服务器平台缺乏数据平面优化,无法实现高效、高性能的函数链,而函数链有助于流行的微服务开发范式。它们在构建函数链时使用不必要的复杂和重复功能,严重降低了性能。“冷启动”延迟是另一个阻碍因素。我们介绍SPRIGHT,一种轻量级、高性能、响应迅速的无服务器框架。SPRIGHT利用共享内存处理,并通过避免不必要的协议处理以及序列化 - 反序列化开销,极大地提高了数据平面的可扩展性。SPRIGHT广泛利用扩展的伯克利包过滤器(eBPF)进行事件驱动处理。我们创造性地使用eBPF的套接字消息机制来支持共享内存处理,且开销严格与负载成正比。与持续运行的、基于轮询的DPDK相比,在实际工作负载下,SPRIGHT以少10倍的CPU使用率实现了相同的数据平面性能。此外,eBPF对SPRIGHT有益,它取代了重量级的无服务器组件,使我们能够以可忽略的代价保持函数“热态”。我们的初步实验结果表明,与Knative相比,SPRIGHT在吞吐量和延迟方面实现了一个数量级的提升,同时大幅降低了CPU使用率,并消除了“冷启动”的需求。