prio qdisc
Jan Prochazka
prochazka na btl.cz
Úterý Červen 13 15:00:16 CEST 2000
> nemate nekdo prakticke (!) zkusenosti s priority queuing discipline
> ? Vsude jsem se totiz docetl (a vraci to i "# tc class add help" ... ),
> ze prio qdisc muze mit tridy, ale pokud provedu "# tc class add
> prio help" uz to nadava: "Qdisc "prio" is classless" ?!?
Odpovim si sam (alespon na neco) - treba se to bude hodit i nekomu
dalsimu.
Cilem bylo zajistit co nejrychlejsi odezvu na ppp lince pro interaktivni
provoz.
Prostredky: Na obou koncich linky je linux box s jadrem 2.2.14-5.0 (Qos,
prio a tbf qdisc zakompilovan do jadra),
mezi nimi pronajata linka s MTU 512 a rychlosti podle toho jak zvlhnou
draty cca 26kbit.
K nastavovani pouzivam ipchains 1.3.9 a tc z baliku iproute2-2_2_4-now-
ss000305
Prakticky navod:
Na obou boxech provedeme nastaveni (pozor, toto pisu na Woknech ->
CRLF):
# tc qdisc add dev ppp0 root handle 1: prio
# tc qdisc add dev ppp0 parent 1:2 tbf rate 33kbit burst 512 latency 15ms
# tc filter add dev ppp0 parent 1:0 protocol ip prio 90 fw
A jeste zapneme patricne oznacovani packetu:
# ipchains -A output <specifikace_prioritniho provozu> -m 0x10001 -j
ACCEPT
# ipchains -A output <specifikace_zbyvajiciho_provozu_do_linky> -m
0x10002 -j ACCEPT
A jak to (asi) funguje:
1. prikaz tc vytvori prio qdisc, ktera uz obsahuje i podrizene tridy (!!!)
2. prikazem tc pripojime k mene prioritnejsi tride (presneji receno ke tride
1:2, ktera je dle experimentu mene prioritnejsi nez 1:1) frontu typu tbf pro
omezeni prutoku dat. Pro zajisteni co nejrychlejsi odezvy je to zrejme nutne
protoze jinak se zaplni dalsi buffery na seriovem portu v modemu apod. a
pakety pak drhnou tam.
3. prikaz tc zapne filtr fw (zrejme by sel pouzit bez problemu i jiny typ filtru,
ale me libi tento)
Pakety oznacene 10001 se poslou do tridy 1:1 na ktere visi implicitni pfifo
delky 10 a pakety oznacene 10002 se posilaji do tbf
Rychlost nastavena u tbf parametrem rate je otazkou kompromisu, protoze
kdyz se nastavi vetsi nez je aktualni kapacita linky (modemy umi kompresit a
tak kapacita linky zavisi treba i na typu dat) dojde k drhnuti i prioritnejsiho
provozu a kdyz mensi tak je kapacita linky zbytecne nevyuzita.
Vyse uveden funguje docela dobre, presto par dotazu zustava:
Jak funguji parametry u prio qdisc (jde o bands a priomap) ???
(Nejak se mi nedari temito parametry nic ovlivnit)
Lze najak ovlivnit rychlost odezvy bez omezovani zbytku provozu pomoci
tbf qdisc ???
Jak nastavit tridu 1:2 implicitni pro nijak neoznacene pakety ???
Mate-li nekdo i nejake dalsi poznatky okolo nastavovani priorit sitoveho
provozu jste vitani.
Diky
JP
Další informace o konferenci Linux