[LARTC] tc causes errors on HTML downloads

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



LARTC - 

I have just started using tc in a closed capacity lab situation.  The
lab setup contains 20 machines (win 2000), each with 5 IP address,
downloading a sequence of HTML pages through HTTP.  The downloads are
accomplished by a simple browser simulator that is given a list of
pages.  It downloads a page and all its sub-components (frames, images,
etc.) and then moves on to the next page in the list.  There is a
separate browser simulator running on each IP address (a client).

These simulated clients talk to a web server through a Linux machine
setup up as a router (RedHat 7.3 - 2.4.18-3 stock).  I have configured
tc using the attached script to limit the bandwidth between each
simulated IP address and the server.  

When I run the test with 40 clients (40 of the 100 simulated IPs)
active, the simulated browser gives errors downloading the images in the
second page (of a two page list).  However, when tc is cleared (just
linux routing with no shaping) there are no errors.  If I reduce the
number of active clients to 4 or 5 then the errors also disappear.  

Can anyone suggest the cause of this behavior and how I might change my
tc configuration to avoid it?  Or any other suggestions on how to better
configure the queues to accomplish my goal?

Thanks for you responses, 

Jason Hunter
jthunter@xxxxxxxxxxxxxxx


----  Attached bash script ----------

#!/bin/bash

# add the top level queue to allow us to add other managing queues
tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit avpkt 1000
cell 8

# add a shaping queue for traffic to/from the LabNet (7 network)
machines individually
i=10
while (($i <= 200))
do
	j=0
	while (($j < 5))
	do
		k=$(($i+$j))
		tc class add dev eth0 parent 1:0 classid 1:$k cbq
bandwidth    \
100Mbit rate 1200bps weight 1 prio 8 allot 1514 cell 8 maxburst 100
avpkt  \ 1000 bounded 
		tc qdisc add dev eth0 parent 1:$k handle $k: sfq
		tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32
match \
ip dst 192.168.7.$k flowid 1:$k
		tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32
match \
ip src 192.168.7.$k flowid 1:$k

		j=$(($j+1))
	done

	i=$(($i+10))
done




[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux