web-dev-qa-db-ja.com

キューの規律をデフォルトのpfifo_fastにリセットしますか?

レート制限されたキューの規則を一時的に設定し、少し後で削除しようとしています。

# /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

しかし、再起動せずにこれを実際の default にリセットする方法を知りたいと思っていました。

13
Francois Marier

新しいキューの分野を削除して追加するには:

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

または、キューの規律がすでに設定されている場合は、それを直接置き換えることができます。

tc qdisc replace dev eth1 root pfifo
11
garuse
3
David Kemp

Pfifo_fastのmanページ(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
2
Omega Weapon