Linux

Linux 流量控制:qdisc mq

  • February 19, 2021

在我的 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 noopqdisc 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

引用自:https://serverfault.com/questions/474230