Linux 默认会创建一个 qdisc mq
。我正在电脑上配置它以更改一些参数,但我发现有两个似乎相同的 qdisc:mq
和multiq
。
我找不到任何关于它们之间有什么区别的文档来知道该使用哪一个。
我唯一能够验证的是,对于同一设备,mq
检测到 2 个传输通道时,检测到 8 个传输通道。multiq
在https://github.com/torvalds/linux/blob/master/net/sched/Kconfig指定multiq
但没有mq
。
答案1
我一直在尝试弄清楚同样的事情,我认为文档不是很好......
我不确定我是否理解正确,但我的结论是:
- mq 公开多个硬件队列(当硬件支持时,大多数现代硬件都支持)
- multiq 在单个硬件队列之上用软件创建多个队列。这应该会有所帮助,因为每个软件队列都会有自己的 qdisc 锁。
- 还有 mqprio,它似乎像 mq 一样公开硬件队列,但也配置硬件如何在队列之间分配带宽。
我希望有更多的例子来展示如何使用这些功能。