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