The increasing performance requirements of modern applications place a significant burden on software-based packet processing. Most of today's software input/output accelerations achieve high performance at the expense of reserving CPU resources dedicated to continuously poll the Network Interface Card. This is specifically the case with DPDK (Data Plane Development Kit), probably the most widely used framework for software-based packet processing today. The approach presented in this paper, descriptively called Metronome, has the dual goals of providing CPU utilization proportional to the load, and allowing flexible sharing of CPU resources between I/O tasks and applications. Metronome replaces DPDK's continuous polling with an intermittent sleep&wake mode, and revolves around a new multi-threaded operation, which improves service continuity. Since the proposed operation trades CPU usage with buffering delay, we propose an analytical model devised to dynamically adapt the sleep&wake parameters to the actual traffic load, meanwhile providing a target average latency. Our experimental results show a significant reduction of the CPU cycles, improvements in power usage, and robustness to CPU sharing even when challenged with CPU-intensive applications.
翻译:现代应用软件不断增长的性能要求给基于软件的软件包处理带来沉重的负担。当今软件投入/产出加速的多数都取得了很高的性能,而牺牲了专门用于持续调查网络接口卡的CPU资源。具体地说,DPDK(Data Plane Development Kit)可能是当今软件包处理最广泛使用的框架。本文介绍的称为Metronome的方法具有双重目标,即提供与负荷成比例的CPU利用率,允许I/O任务和应用之间灵活分享CPU资源。Metrome用间歇睡眠和wake模式取代DPDK的连续投票,并围绕新的多读作业进行,这可以改善服务的连续性。由于拟议的业务交易CPU(D)使用缓冲延迟,我们提议了一个分析模型,旨在动态地使睡眠和wake参数适应实际交通负荷,同时提供目标平均拉拉。我们的实验结果显示CPU周期大幅下降,电力使用改进,即使在受到CPU密集应用的挑战时,也强有力地分享CPU。