将队列规则重置为默认的pfifo_fast?


13

我正在尝试暂时设置一个限速队列规则,然后稍后将其删除:

# /sbin/tc qdisc add dev eth1 root tbf rate 600kbit latency 50ms burst 1540
# /sbin/tc qdisc del dev eth1 root

不幸的是,这完全消除了队列约束,并阻止了删除队列后传出数据的传输。

我希望能够将队列规则重置为默认规则:

qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

但是,看起来pfifo_fast qdisc不能手动创建:

# /sbin/tc qdisc add dev eth1 root pfifo_fast
qdisc 'pfifo_fast' does not support option parsing

我发现的解决方法是创建一个新的简单队列规则:

# /sbin/tc qdisc add dev eth1 root prio

但是,我想知道如何在不重新启动的情况下将其重置为真实的默认设置

Answers:


11

删除并添加新的队列规则:

tc qdisc del dev eth1 root
tc qdisc add dev eth1 root pfifo

或者,如果队列规则已经到位,则可以直接替换它:

tc qdisc replace dev eth1 root pfifo

1
这不会重置为pfifo_fast,仅重置为pfifo,这是不同的。OP关于如果尝试使用“ _fast”执行此操作的评论是相关的。
Thomas Thorogood 2015年


2

pfifo_fast的手册页(man tc-pfifo_fast)说,接口会自动附加pfifo_fast qdisc-当您添加其他qdisc然后删除此qdisc时,pfifo_fast将自动恢复服务。

这表明OP的设置发生了问题。

经过测试:

$ uname -a
Linux debian-testing-vm 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.