Linuxstream量控制:qdisc mq

在我的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我只find有关IMQ的信息。

在howto的例子中还有qdisc noqueue qdisc noopqdisc noqueue ,但没有关于它们的细节。

谷歌search将很容易从vger内核邮件列表中得到这篇文章 :

这些补丁包含一个有类别的多队列(“mq”)虚拟调度器,用于解决当前多队列TC API集成中的一些问题。 补丁05和07的更新日志包含更多的细节。

mq调度器做了两件事情:

  • 将设备TX队列作为类,允许将不同的qdisc附加到它们,这些qdisc被嫁接到TX队列

  • 显示所有设备队列根qdisc的累计统计信息

其默认用于多队列设备,而不是常规的pfifo_fast qdisc,但也可以在附加非多队列(共享)qdisc后手动连接以恢复多队列行为。

Multiqueue是一个function,它主要用来分配几个内核之间的数据包处理负载,RSS(Receive-Side-Scaling)。 进一步阅读: http : //lxr.free-electrons.com/source/Documentation/networking/scaling.txt