Networking
更改 qdisc 算法 sysctl 和 tc
通過
tc
命令 vs控制什麼 qdiscsysctl 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 隊列。
希望這可以解決問題。