DPDK (Data Plane Development Kit) is arguably today's most employed framework for software packet processing. Its impressive performance however comes at the cost of precious CPU resources, dedicated to continuously poll the NICs. To face this issue, this paper presents Metronome, an approach devised to replace the continuous DPDK polling with a sleep&wake intermittent mode. Metronome revolves around two main innovations. First, we design a microseconds time-scale sleep function, named hr_sleep(), which outperforms Linux' nanosleep() of more than one order of magnitude in terms of precision when running threads with common time-sharing priorities. Then, we design, model, and assess an efficient multi-thread operation which guarantees service continuity and improved robustness against preemptive thread executions, like in common CPU-sharing scenarios, meanwhile providing controlled latency and high polling efficiency by dynamically adapting to the measured traffic load.
翻译:DPDK (Data Plane Development Development 工具包) 可以说是当今软件包处理中最常用的框架。 然而,它令人印象深刻的表现是以宝贵的CPU资源为代价的,而CPU资源是专用于持续调查NICs。 面对这一问题,本文展示了Metronome, 这是用睡眠和觉醒间歇模式取代 DPDK连续投票的一种方法。 Metnome围绕两个主要创新进行。 首先,我们设计了一个名为hr_sleep( ) 的微秒时间尺度睡眠功能,它比Linux 纳米睡眠( ) 的精确度高出一个数量级, 在运行共同时间共享优先事项的线时, 精确度超过一个数量级 。 然后, 我们设计, 模型, 并评估一个高效的多轨操作, 保证服务连续性, 并增强稳健性, 以防范先发型的线处决, 如常见的CPU 共享情景, 同时通过动态适应测量的交通负荷, 提供有节制的延和高投票效率。