From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Marcus Felipe Pereira" Date: Tue, 10 May 2005 13:17:12 +0000 Subject: Re: [LARTC] HTB rate miscalculation Message-Id: <018801c55562$94104f60$6000a8c0@Micro1> List-Id: References: <029901c550fc$77524c30$1f00a8c0@Micro1> In-Reply-To: <029901c550fc$77524c30$1f00a8c0@Micro1> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: lartc@vger.kernel.org >>>> One problem appeared. Htb seems to miscalculate the bandwidth for >>>> classes with greater rates. >>>> For rates below 2Mbit there is almost no difference between the >>>> configured and the measured rate. >>>> >>>> For large ones the problem starts. My root class has 10Mbit rate and >>>> when the interface has heavy trafic the measured bandwidth coudn't get >>>> more then 8.5Mbit. >>>> >>>> "# tc -s class show ...." shows that the root class has about the >>>> 10Mbit, but the link stats shows mutch less. >>>> >>>> The solution was to put the htb ceil on about 12Mbit. Then I can get >>>> to the 10Mbit. When using CBQ I didn't have this problem. >>>> >>>> Is there any parameter that I can change to correct the rate >>>> calculation? >>>> Any one has similar problem? >>> >>> >>> What counters are you using to measure? >>> >>> Does it do the same if you test with a single tcp stream and a very >>> simple setup like - >>> >>> tc qdisc add dev eth0 root handle 1:0 htb >>> tc class add dev eth0 parent 1:0 classid 1:1 htb rate 10mbit >>> tc filter add dev eth0 parent 1:0 protocol ip u32 match u32 0 0 flowid >>> 1:1 >>> >>> Andy. >> >> >> I've done more tests, in fact there is a difference in the measure. >> >> The rate measured by htb class, iptraf and iptables show very similar >> numbers. >> The rate measured using SNMP ifInOctets and ifOutOctets (snmpget, ddrtool >> and mrtg) show rates about 20% less than htb. >> >> Why this difference? > > Not sure - I can get netperf, htb counters and polling ifconfig counters > every second to agree and show correct rate with the simple case above. > > I don't have snmpget to test. > > Andy. The difference is for sure on snmp counters, that's what mrtg an ddrtool use. Getting counters for eth0 (should have snmp daemon running): ifInOctets=`/usr/bin/snmpget -v1 -c .1.3.6.1.2.1.2.2.1.10.2 | cut -f4 -d:` ifOutOctets=`/usr/bin/snmpget -v1 -c .1.3.6.1.2.1.2.2.1.16.2 | cut -f4 -d:` Marcus _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc