一句话:提出Morpheus,在运行时跟踪控制平面与流量动态,对软件数据平面代码做领域特定优化,吞吐最高提升2倍、99分位延迟减半。
现有软件包处理程序的设计与优化主要依赖静态编译:编译器以转发面语义为输入,输出需适应任意控制面配置或输入流量的二进制,因而无法利用运行时的控制面动作与包级流量动态。本文提出Morpheus,一个与静态编译器协同工作的系统,可对目标网络代码进行持续优化。作者引入静态代码分析、自适应代码插桩等技术,并实现了一套不限于特定数据平面框架或编程语言的领域特定优化工具箱。Morpheus被应用于多个eBPF和DPDK程序,包括Facebook生产级负载均衡器Katran。与最先进的优化框架相比,Morpheus可实现最高2倍的吞吐提升,同时将99分位延迟减半。
State-of-the-art approaches to design, develop and optimize software packet-processing programs are based on static compilation: the compiler's input is a description of the forwarding plane semantics and the output is a binary that can accommodate any control plane configuration or input traffic. In this paper, we demonstrate that tracking control plane actions and packet-level traffic dynamics at run time opens up new opportunities for code specialization. We present Morpheus, a system working alongside static compilers that continuously optimizes the targeted networking code. We introduce a number of new techniques, from static code analysis to adaptive code instrumentation, and we implement a toolbox of domain specific optimizations that are not restricted to a specific data plane framework or programming language. We apply Morpheus to several eBPF and DPDK programs including Katran, Facebook's production-grade load balancer. We compare Morpheus against state-of-the-art optimization frameworks and show that it can bring up to 2x throughput improvement, while halving the 99th percentile latency.
@inproceedings{MianoSRRA22,
title = {Domain specific run time optimization for software data planes},
author = {Sebastiano Miano and Alireza Sanaee and Fulvio Risso and Gábor Rétvári and Gianni Antichi},
booktitle = {ASPLOS},
year = {2022},
doi = {10.1145/3503222.3507769}
}