Linux内核的公平队列“FQ”网络数据包调度算法自在Linux 3.12内核周期中被主流化以来,正在庆祝其10周年,它通过在下一版本的Linux内核中推出一些性能优化来庆祝。
谷歌的Eric Dumazet一直致力于对公平队列网络调度算法代码进行一轮性能改进。最终的结果是,吞吐量提高了5%左右,未定价UDP数据包的吞吐量提高了13%。
“net_sched:sch_fq:一轮改进
对于FQ十周年,是时候让它更快了。
FQ部分(如公平队列中)相当昂贵,因为我们必须对数据包进行分类,并将其存储在每个流的结构中,并将该每个流结构添加到哈希表中。然后RR列表还会添加缓存线未命中。
大多数fq qdisc几乎处于空闲状态。尝试共享NIC带宽没有任何好处,因此qdisc可能表现得像FIFO。
该系列使密集tcp_r工作负载的吞吐量增加了5%,使(未定价的)UDP数据包的吞吐量增加13%。“
这些FQ数据包调度改进已经
合并
into the net-next branch ahead of the Linux 6.7 kernel merge window opening up in about one month's time.