Linux
Linux 流量控制: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我只找到有關 IMQ 的資訊。在 howto 的範例中也有
qdisc noop
和qdisc noqueue
,但沒有關於它們的詳細資訊。
Google搜尋很容易從 vger 核心郵件列表中找到這篇文章:
這些更新檔包含一個分類多隊列(“mq”)虛擬調度程序,以修復目前多隊列 TC API 集成的幾個問題。更新檔 05 和 07 的更新日誌包含更多詳細資訊。
mq 調度器做了兩件事:
- 將設備 TX 隊列呈現為類,允許將不同的 qdisc 附加到它們,這些 qdisc 被移植到 TX 隊列
- 顯示所有設備隊列根 qdisc 的累積統計資訊
它預設用於多隊列設備而不是正常的 pfifo_fast qdisc,但也可以在附加非多隊列(共享)qdisc 後手動附加以恢復多隊列行為。
多隊列是一個功能,也稱為 RSS(接收端縮放),它基本上是在幾個核心之間分配數據包處理的負載。進一步閱讀:https ://elixir.bootlin.com/linux/latest/source/Documentation/networking/scaling.rst