一句话:提出 PacketMill,通过元数据模型与代码优化定制网络功能二进制,实现单核近 100 Gbps 包处理。
软件包处理栈存在多层次低效,难以在商用硬件单核上达到 100 Gbps,尤其当新包到达速度比主存访问快 10 倍以上时。PacketMill 提出新的包元数据管理模型,并采用代码优化技术,从高层网络功能配置文件到低层用户态 DPDK 驱动对整个包处理栈进行“研磨”,为给定网络功能生成定制二进制。评估表明,其吞吐最高提升 36.4 Gbps(70%),延迟最多降低 101 us(28%),并仅用单核即可让路由器等非平凡包处理达到约 100 Gbps。
We present PacketMill, a system for optimizing software packet processing, which (i) introduces a new model to efficiently manage packet metadata and (ii) employs code-optimization techniques to better utilize commodity hardware. PacketMill grinds the whole packet processing stack, from the high-level network function configuration file to the low-level userspace network (specifically DPDK) drivers, to mitigate inefficiencies and produce a customized binary for a given network function. Our evaluation results show that PacketMill increases throughput (up to 36.4 Gbps -- 70%) & reduces latency (up to 101 us -- 28%) and enables nontrivial packet processing (e.g., router) at ~100 Gbps, when new packets arrive >10× faster than main memory access times, while using only one processing core.