
已排队进入 Linux 网络子系统的”net-next”分支,以适应 Linux 6.20~7.0 合并窗口下个月发布的是 cake_mq,作为 sch_cake 网络调度器的多队列感知变体。cake_mq 的目的是更好地跨多个 CPU 核心扩展网络流量速率调节器。
cake_mq 并非绑定于单个 CPU 核心,而随着网络速度超越现代 CPU 单核性能,为了满足现代数据中心的需求,cake_mq 被开发出来,使 sch_cake 具备多队列感知能力,并高效地将工作扩展到多个 CPU 核心。
由 Red Hat 主导的”cake_mq”多队列通用应用增强工作,上周已进入 net-next 分支,因此应成为即将到来的内核周期的一部分。Git 合并到 net-next 的总结中,cake_mq 被概括为:
“这一系列添加了 sch_cake 调度器的多队列感知变体,称为 ‘cake_mq’。使用这个变体可以使 sch_cake 的速率调节器跨多个 CPU 进行扩展,同时在接口上仍然强制执行单一的全局速率。
这一补丁系列采用的方法是实现一个名为 ‘cake_mq’ 的单独的 qdisc,它基于现有的 ‘mq’ qdisc,但在几个方面有所不同:”
– 它将在每个硬件队列上始终安装一个 cake 实例(而不是像’mq’那样为每个队列使用默认的 qdisc)。
– 队列上的 cake 实例将共享其配置,该配置只能通过父 cake_mq 实例进行修改。
采用这种方式简化了用户配置,通过 cake_mq qdisc 集中所有配置(cake_mq qdisc 也作为选择多队列感知行为的明显方式)。cake_mq qdisc 与 cake qdisc 使用相同的配置参数。
这项工作的早期版本于今年在 Netdevconf 上进行了展示。”
cake_mq 应能提供更好的流量调节性能,尤其是在当今配备多核 CPU 和不断增长的网络速度的高端数据中心硬件上。
转自 CAKE_MQ Slated For Linux 7.0 To Adapt SCH_CAKE For Today’s Multi-Core World – Phoronix
Linuxeden开源社区