Hello, Besides a very good functionality, I have a small, yet stressing, problem. Let's say I have a bandwidth of N bits. I have X clients, everyone with his fixed bandwidth. I create htb qdsics for each client. Each leaf has sfq queueing discipline. A sample config would be like this : tc class add dev eth0 parent 1:2 classid 1:346 htb rate 32Kbit ceil 32Kbit burst 4k cburst 2k prio 4 tc qdisc add dev eth0 parent 1:346 handle 346 sfq perturb 10 AND tc class add dev eth0 parent 1:2 classid 1:161 htb rate 256Kbit ceil 256Kbit burst 32k cburst 2k prio 4 tc qdisc add dev eth0 parent 1:161 handle 161 sfq perturb 10 The filters are like : tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst 1.2.3.128/25 classid 1:346 tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst 1.2.3.4/30 classid 1:161 The problem is that clients can have their bandwidths at maximum only if they use a download accelerating software like DAP with multiple symultanous threads. Using only one thread, a single download can reach about 60% of the allocated bandwidth. I have tested a download without any limits and it was working well, so there's no problem with the remote site. I have searched thorugh messages posted on this mailing list but I didn't find a similar problem. Maybe I need to set quantum manually. I have tested with r2q default value (10) and also with 2 (raising quantum). Another question would be: if quantum is bigger, the client can exceed his limit by that value ? Is that possible all the time or at bursty intervals ? Thank you very much, Ciprian Nica
On Wednesday 28 August 2002 15:15, Ciprian Nica wrote: > Hello, > > Besides a very good functionality, I have a small, yet stressing, probl= em. > > Let's say I have a bandwidth of N bits. > > I have X clients, everyone with his fixed bandwidth. > > I create htb qdsics for each client. Each leaf has sfq queueing > discipline. > > A sample config would be like this : > > tc class add dev eth0 parent 1:2 classid 1:346 htb rate 32Kbit ceil 32K= bit > burst 4k cburst 2k prio 4 > tc qdisc add dev eth0 parent 1:346 handle 346 sfq perturb 10 > > AND > > tc class add dev eth0 parent 1:2 classid 1:161 htb rate 256Kbit ceil > 256Kbit burst 32k cburst 2k prio 4 > tc qdisc add dev eth0 parent 1:161 handle 161 sfq perturb 10 > > > The filters are like : > tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst > 1.2.3.128/25 classid 1:346 tc filter add dev eth0 parent 1:0 protocol i= p > prio 100 u32 match ip dst 1.2.3.4/30 classid 1:161 > > The problem is that clients can have their bandwidths at maximum only i= f > they use a download accelerating software like DAP with multiple > symultanous threads. Using only one thread, a single download can reach > about 60% of the allocated bandwidth. > > I have tested a download without any limits and it was working well, so > there's no problem with the remote site. > > I have searched thorugh messages posted on this mailing list but I didn= 't > find a similar problem. > > > Maybe I need to set quantum manually. I have tested with r2q default va= lue > (10) and also with 2 (raising quantum). > > Another question would be: if quantum is bigger, the client can exceed = his > limit by that value ? Is that possible all the time or at bursty interv= als > ? Quantum is used if 2 or more classes with the same parent are fighting fo= r=20 bandwidth. First, they are allowed to get the rate you gave them. For t= he=20 remaining bandwidth, quantum is used. Each class may send quantum bytes.= =20 You have to make sure quantum > MTU (typical 1500 bytes for ethernet). What if you use no sfq qdiscs? Stef --=20 stef.coene@docum.org "Using Linux as bandwidth manager" http://www.docum.org/ #lartc @ irc.oftc.net
On Wednesday 28 August 2002 20:45, Stef Coene wrote: > > The problem is that clients can have their bandwidths at maximum only if > > they use a download accelerating software like DAP with multiple > > symultanous threads. Using only one thread, a single download can reach > > about 60% of the allocated bandwidth. > > Quantum is used if 2 or more classes with the same parent are fighting for > bandwidth. First, they are allowed to get the rate you gave them. For the > remaining bandwidth, quantum is used. Each class may send quantum bytes. > You have to make sure quantum > MTU (typical 1500 bytes for ethernet). > > What if you use no sfq qdiscs? > > Stef I have tried with pfifo queues and it's the same. I made many tests changing quantum, queueing for leaf but in no case I could reach the allocated bandwidth with a single download thread. The same limit set on cisco router with traffic-shape, worked fine. Could there be a problem when there are many qdiscs ? Are there many calculations to be done, so the packets get delayed and the TCP transfer rate is lowered. Ciprian