在我的 Linux 系统上我看到了这个:
# ip link list
....
2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
....
是什么qdisc mq
?在http://lartc.org/lartc.html我只找到有关 IMQ 的信息。
本指南的示例中也有qdisc noop
和qdisc noqueue
,但没有关于它们的详细信息。
答案1
谷歌搜索很容易就能找到本文来自 vger 内核邮件列表:
这些补丁包含一个有类多队列(“mq”)虚拟调度程序,用于修复当前多队列 TC API 集成的几个问题。补丁 05 和 07 的变更日志包含更多详细信息。
mq 调度程序做两件事:
将设备 TX 队列作为类呈现,允许将不同的 qdisc 附加到它们,这些 qdisc 被嫁接到 TX 队列
当前所有设备队列根 qdiscs 的累计统计信息
它默认用于多队列设备,而不是常规的 pfifo_fast qdisc,但也可以在附加非多队列(共享)qdisc 后手动附加以恢复多队列行为。
多队列是一种功能,也称为 RSS(接收方扩展),它基本上是在多个核心之间分配数据包处理的负载。进一步阅读:https://elixir.bootlin.com/linux/latest/source/Documentation/networking/scaling.rst