All, I have been using the following as a means of rate limiting access to the Internet via eth0 (which connects to my cable modem) and it was working great with my 2.4.20 kernel: tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1: htb default 1 tc class add dev eth0 parent 1: classid 1:1 htb rate 486kbit ceil 486kbit tc qdisc add dev eth0 parent 1:1 handle 10: sfq perturb 10 However, after recently updating to kernel version 2.6.15, throughput on eth0 has become sluggish and it is only by disabling the above that performance is restored. Also, I see a whole slew of the following messages in my log: qdisc_restart: Empty queue has non zero length 1 Any advice on how to approach this problem would be greatly appreciated. Thanks, - Andrew Kraslavsky P.S. If I go back to my 2.4.20 kernel, throughput is restored. _________________________________________________________________ Help yourself to FREE treats served up daily at the Messenger Café. Stop by today. http://www.cafemessenger.com/info/info_sweetstuff2.html?ocid=TXT_TAGLM_OctWLtagline
All, Follow up to the problem I reported earlier:> I have been using the following as a means of rate limiting > access to the Internet via eth0 (which connects to my cable > modem) and it was working great with my 2.4.20 kernel: > > tc qdisc del dev eth0 root > tc qdisc add dev eth0 root handle 1: htb default 1 > tc class add dev eth0 parent 1: classid 1:1 htb rate 486kbit ceil 486kbit > tc qdisc add dev eth0 parent 1:1 handle 10: sfq perturb 10 > > However, after recently updating to kernel version 2.6.15, > throughput on eth0 has become sluggish and it is only by > disabling the above that performance is restored. > > Also, I see a whole slew of the following messages in my log: > > qdisc_restart: Empty queue has non zero length 1I see negative "tokens" and "ctokens" values listed when I do a "show" on the class of eth0: $ tc -s -d class show dev eth0 class htb 1:1 root leaf 10: prio 0 quantum 6075 rate 486000bit ceil 486000bit burst 2206b/8 mpu 0b overhead 0b cburst 2206b/8 mpu 0b overhead 0b level 0 Sent 614100 bytes 578 pkts (dropped 0, overlimits 0) rate 31312bit 3pps backlog 106p lended: 472 borrowed: 0 giants: 0 tokens: -33271 ctokens: -33271 Are the "tokens" and "ctokens" values ever supposed to be negative? If so, what does the negative value mean (e.g. borrowed or lent tokens?). If not, is this indicative of a problem that is at all familiar to anyone? Thanks, - Andrew Kraslavsky _________________________________________________________________ Peek-a-boo FREE Tricks & Treats for You! http://www.reallivemoms.com?ocid=TXT_TAGHM&loc=us
Andrew Kraslavsky wrote:> > All, > > Follow up to the problem I reported earlier: > > > I have been using the following as a means of rate limiting > > access to the Internet via eth0 (which connects to my cable > > modem) and it was working great with my 2.4.20 kernel: > > > > tc qdisc del dev eth0 root > > tc qdisc add dev eth0 root handle 1: htb default 1 > > tc class add dev eth0 parent 1: classid 1:1 htb rate 486kbit ceil 486kbit > > tc qdisc add dev eth0 parent 1:1 handle 10: sfq perturb 10 > > > > However, after recently updating to kernel version 2.6.15, > > throughput on eth0 has become sluggish and it is only by > > disabling the above that performance is restored. > > > > Also, I see a whole slew of the following messages in my log: > > > > qdisc_restart: Empty queue has non zero length 1 > > I see negative "tokens" and "ctokens" values listed when I do a "show" on the class of eth0: > > $ tc -s -d class show dev eth0 > > class htb 1:1 root leaf 10: prio 0 quantum 6075 rate 486000bit ceil 486000bit burst 2206b/8 mpu 0b overhead 0b cburst 2206b/8 mpu 0b overhead 0b level 0Why is the quantum so large? Is this a gigabit NIC?> Sent 614100 bytes 578 pkts (dropped 0, overlimits 0) > rate 31312bit 3pps backlog 106pThis backlog and the 472 borrowed below are what are causing your negatives.> lended: 472 borrowed: 0 giants: 0 > tokens: -33271 ctokens: -33271 > > Are the "tokens" and "ctokens" values ever supposed to be negative?Yes.> If so, what does the negative value mean (e.g. borrowed or lent tokens?).I don''t know. Read the HTB docs. If not, is this indicative of a problem that is at all familiar to anyone?> > Thanks, > > - Andrew KraslavskyMy guesses are: 1) The clock used by HTB is too slow. 2) This is a gigabit NIC not correctly set up. -- gypsy