Networking

更改 qdisc 算法 sysctl 和 tc

  • December 11, 2020

通過tc命令 vs控制什麼 qdisc sysctl net.core.default_qdisc?考慮

$ tc qdisc show dev eth2
qdisc mq 0: dev eth2 root 

$ sysctl net.core.default_qdisc
net.core.default_qdisc = pfifo_fast

在此系統上,預設 qdisc 設置為pfifo_fast,但重新啟動後使用的 qdisc 是mq(多隊列)。很明顯,它們沒有直接關係,或者至少沒有以“開箱即用”的方式有意義。 這個關於在 Linux 網路堆棧中排隊的連結清楚地表明它tc qdisc ...適用於位於 IP 堆棧和驅動程序隊列之間的隊列*。*

任何人都可以為我消除這兩個歧義嗎?

多隊列(“mq”)調度程序使 Linux 核心能夠支持稱為接收端縮放(RSS)的功能,其中數據包處理的負載分佈在多個 CPU 核心上。

在我的 Ubuntu 18.04.1 桌面系統上,net.core.default_qdisc 設置為 pfifo_fast,我執行以下命令:

$ tc qdisc show dev eth0

這是輸出:

qdisc mq 0: root
qdisc pfifo_fast 0: parent :2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :1 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

mq 調度程序預設在設備 eth0 上配置了兩個 pfifo_fast 隊列。

希望這可以解決問題。

引用自:https://unix.stackexchange.com/questions/481339