更改 qdisc 算法 sysctl 和 tc

更改 qdisc 算法 sysctl 和 tc

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 堆栈和驱动程序队列之间。

谁能帮我消除这两个歧义吗?

答案1

多队列(“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 队列。

希望这能解决问题。

相关内容