基于Morpheus的软件网络服务动态编译
Dynamic Recompilation of Software Network Services with Morpheus
摘要:
设计、开发和优化软件分组处理程序的现有技术方法基于静态编译:编译器的输入是转发平面语义的描述,输出是可以容纳任何控制平面配置或输入流量的二进制。在本文中,我们证明了在运行时间跟踪控制平面动作和数据包级流量动态开辟了新的机会,代码专业化。我们提出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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。