我正在尝试临时设置一个速率限制的队列规则,然后稍后将其删除:
# /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
然而,我想知道如何将其重置回真实默认无需重启。
答案1
删除并添加新的队列规则:
tc qdisc del dev eth1 root
tc qdisc add dev eth1 root pfifo
或者如果队列规则已经到位,你可以直接替换它:
tc qdisc replace dev eth1 root pfifo
答案2
从http://www.knowplace.org/pages/howtos/traffic_shaping_with_linux/examples.php:
tc qdisc del dev eth1 root
答案3
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