Linux 流量控制:qdisc multiq 和 mq 有什么区别?

Linux 流量控制:qdisc multiq 和 mq 有什么区别?

Linux 默认会创建一个 qdisc mq。我正在电脑上配置它以更改一些参数,但我发现有两个似乎相同的 qdisc:mqmultiq

我找不到任何关于它们之间有什么区别的文档来知道该使用哪一个。

我唯一能够验证的是,对于同一设备,mq检测到 2 个传输通道时,检测到 8 个传输通道。multiq


https://github.com/torvalds/linux/blob/master/net/sched/Kconfig指定multiq但没有mq

答案1

我一直在尝试弄清楚同样的事情,我认为文档不是很好......

我不确定我是否理解正确,但我的结论是:

  • mq 公开多个硬件队列(当硬件支持时,大多数现代硬件都支持)
  • multiq 在单个硬件队列之上用软件创建多个队列。这应该会有所帮助,因为每个软件队列都会有自己的 qdisc 锁。
  • 还有 mqprio,它似乎像 mq 一样公开硬件队列,但也配置硬件如何在队列之间分配带宽。

我希望有更多的例子来展示如何使用这些功能。

相关内容