[论文解读] Automatic Parallelization of Software Network Functions
Maestro 是一种自动并行化软件网络功能(NF)的工具,通过分析其状态访问模式并配置网卡的接收侧缩放(RSS),将同一数据流的分组路由至同一核心,从而实现无共享(shared-nothing)架构,消除核心间协调。它在达到 PCIe 或 100 Gbps 线速瓶颈前实现线性扩展,并优于硬件事务内存,即使在并行不友好的工作负载下也是如此。
Software network functions (NFs) trade-off flexibility and ease of deployment for an increased challenge of performance. The traditional way to increase NF performance is by distributing traffic to multiple CPU cores, but this poses a significant challenge: how to parallelize an NF without breaking its semantics? We propose Maestro, a tool that analyzes a sequential implementation of an NF and automatically generates an enhanced parallel version that carefully configures the NIC's Receive Side Scaling mechanism to distribute traffic across cores, while preserving semantics. When possible, Maestro orchestrates a shared-nothing architecture, with each core operating independently without shared memory coordination, maximizing performance. Otherwise, Maestro choreographs a fine-grained read-write locking mechanism that optimizes operation for typical Internet traffic. We parallelized 8 software NFs and show that they generally scale-up linearly until bottlenecked by PCIe when using small packets or by 100Gbps line-rate with typical Internet traffic. Maestro further outperforms modern hardware-based transactional memory mechanisms, even for challenging parallel-unfriendly workloads.
研究动机与目标
- 解决手动并行化软件网络功能(NF)时保持语义一致性并最大化性能的挑战。
- 通过自动化低层级并行化任务(如 RSS 配置和协调机制选择)减轻开发人员负担。
- 通过利用符号执行推断流语义和状态访问模式,在通用硬件上实现高性能 NF。
- 通过智能分组调度最小化核心间协调,实现核心数量增加时的线性扩展。
- 在性能上超越现有解决方案,包括硬件事务内存,尤其在高流 churn 或复杂状态管理的工作负载下。
提出的方法
- 使用符号执行分析顺序 NF 实现,提取定义流边界(如 TCP/UDP 流的五元组)的约束条件。
- 构建状态访问模式的综合符号模型,以确定哪些分组访问相同状态。
- 使用约束求解器生成 RSS 哈希配置,将同一流的分组映射至同一 CPU 核心。
- 自动生成使用配置 RSS 的并行 NF 版本,以实现无共享架构,无需共享内存协调。
- 当无共享不语义安全时,回退至细粒度读写锁机制,针对典型的齐普夫(Zipfian)流量模式进行优化。
- 与 DPDK 和 Vigor API 集成,确保与现有 NF 框架的兼容性,同时保持正确性。

实验结果
研究问题
- RQ1自动分析流语义是否能够实现无需人工干预的安全高效 NF 并行化?
- RQ2RSS 配置在多大程度上可被自动化,以实现消除核心间协调的无共享架构?
- RQ3在多样化工作负载下,自动并行化 NF 的性能与手动优化或硬件加速方案相比如何?
- RQ4符号执行和约束求解是否能有效用于推断状态访问模式并指导 NF 中的分组分发?
- RQ5高 churn 流量对自动并行化 NF 的性能影响如何?Maestro 如何缓解此问题?
主要发现
- Maestro 在达到 PCIe 带宽或 100 Gbps 线速瓶颈前,即使在小分组情况下,也能实现 NF 性能与核心数的线性扩展。
- 在典型互联网流量(多数分组属于少数长期流)的工作负载下,Maestro 的 NAT 实现达到 55% 的 L1 缓存命中率,优于 VPP 的 46%,从而减少内存访问。
- Maestro 的自动并行化 NF 即使在本质上并行不友好的工作负载下,也优于硬件事务内存机制。
- Maestro 生成的无共享架构消除了核心间协调,在典型流量模式下性能优于基于锁的替代方案。
- Maestro 将开发人员工作量减少至单步配置,无需低层级缓存一致性或 RSS 调优专业知识,即可实现高性能 NF。
- 该工具成功并行化了 8 个基于 DPDK 的 NF,其性能提升已在包括 NAT、防火墙和流量监控功能在内的多样化工作负载中得到验证。

更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。