Why did I need strange ceiling settings? (full version)

Linux Advanced Routing and Traffic Control

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

 



Sorry I pressed the wrong key and sent the message too early...

> -----Ursprüngliche Nachricht-----
> Von: Philipp Leusmann [mailto:philipp.leusmann@xxxxxxxxxxxxxx]
> Gesendet: Mittwoch, 8. November 2006 12:53
> An: 'lartc@xxxxxxxxxxxxxxx'
> Betreff: Why did I need strange ceiling settings?
> 
> Hi all,
> 
> I recently installed traffic shaping on my ADSL line with a nominal upload
> rate of 1MBit. My Modem says it has an upload bitrate of 843 kbits.
> So I thought, to use a ceiling of 800kbit for the root qdisc is a good
> idea.
> But with that setting I only achieved upload rates of around 300kbits
> whereas I reached around 650 kbits without traffic shaping.
> Yesterday I played a little with the ceiling value and found that
> increasing it to 175kBps did the job.
> Could anybody please explain this strange behaviour?
> 
> My shaping script looks as follows:

UPRATE="175kbps"
P2PRATE="20kbps"
PRIORATE1="80kbps"
PRIORATE2="50kbps"
PRIORATE3="40kbps"
PRIORATE4="5kbps" 

MTU="`/sbin/ifconfig $EXTIF | grep 'MTU' | awk '{print $6}' | sed -e
's/.*://'`"

# Quantum
QUANTUM1=$(($MTU*4))
QUANTUM2=$(($MTU*3))
QUANTUM3=$(($MTU*2))
QUANTUM4=$MTU

# Burst
## removed bursts
#BURST1="6k"
#BURST2="4k"
#BURST3="2k"
#BURST4="0k"
#CBURST1="3k"
#CBURST2="2k"
#CBURST3="1k"
#CBURST4="0k"

echo "Set queue length for IFACE"
# Set queue length for IFACE
ifconfig $IFACE txqueuelen 16

echo "Trying to delete old ruleset. Will give error if it does not exist"
tc qdisc del dev $IFACE root 

echo "Specify queue discipline"
# Specify queue discipline
tc qdisc add dev $IFACE root handle 1:0 htb default 103

echo "Set root class"
# Set root class
tc class add dev $IFACE parent 1:0 classid 1:1 htb rate $UPRATE ceil $UPRATE
echo "Specify sub classes"
# Specify sub classes
tc class add dev $IFACE parent 1:1 classid 1:101 htb rate $PRIORATE1 ceil
$UPRATE quantum $QUANTUM1 prio 0
tc class add dev $IFACE parent 1:1 classid 1:102 htb rate $PRIORATE2 ceil
$UPRATE quantum $QUANTUM2 prio 1
tc class add dev $IFACE parent 1:1 classid 1:103 htb rate $PRIORATE3 ceil
$UPRATE quantum $QUANTUM3 prio 2
tc class add dev $IFACE parent 1:1 classid 1:104 htb rate $PRIORATE4 ceil
$P2PRATE quantum $QUANTUM4 prio 3

echo "Filter packets"
# Filter packets
tc filter add dev $IFACE parent 1:0 protocol ip prio 0 handle $MARKPRIO1 fw
classid 1:101
tc filter add dev $IFACE parent 1:0 protocol ip prio 1 handle $MARKPRIO2 fw
classid 1:102
tc filter add dev $IFACE parent 1:0 protocol ip prio 2 handle $MARKPRIO3 fw
classid 1:103
tc filter add dev $IFACE parent 1:0 protocol ip prio 3 handle $MARKPRIO4 fw
classid 1:104

UPRATE="175kbps"
P2PRATE="20kbps"
PRIORATE1="80kbps"
PRIORATE2="50kbps"
PRIORATE3="40kbps"
PRIORATE4="5kbps" 

MTU="`/sbin/ifconfig $EXTIF | grep 'MTU' | awk '{print $6}' | sed -e
's/.*://'`"

# Quantum
QUANTUM1=$(($MTU*4))
QUANTUM2=$(($MTU*3))
QUANTUM3=$(($MTU*2))
QUANTUM4=$MTU

# Burst
## removed bursts
#BURST1="6k"
#BURST2="4k"
#BURST3="2k"
#BURST4="0k"
#CBURST1="3k"
#CBURST2="2k"
#CBURST3="1k"
#CBURST4="0k"

echo "Set queue length for IFACE"
# Set queue length for IFACE
ifconfig $IFACE txqueuelen 16

echo "Trying to delete old ruleset. Will give error if it does not exist"
tc qdisc del dev $IFACE root 

echo "Specify queue discipline"
# Specify queue discipline
tc qdisc add dev $IFACE root handle 1:0 htb default 103

echo "Set root class"
# Set root class
tc class add dev $IFACE parent 1:0 classid 1:1 htb rate $UPRATE ceil $UPRATE
echo "Specify sub classes"
# Specify sub classes
tc class add dev $IFACE parent 1:1 classid 1:101 htb rate $PRIORATE1 ceil
$UPRATE quantum $QUANTUM1 prio 0
tc class add dev $IFACE parent 1:1 classid 1:102 htb rate $PRIORATE2 ceil
$UPRATE quantum $QUANTUM2 prio 1
tc class add dev $IFACE parent 1:1 classid 1:103 htb rate $PRIORATE3 ceil
$UPRATE quantum $QUANTUM3 prio 2
tc class add dev $IFACE parent 1:1 classid 1:104 htb rate $PRIORATE4 ceil
$P2PRATE quantum $QUANTUM4 prio 3

echo "Filter packets"
# Filter packets
tc filter add dev $IFACE parent 1:0 protocol ip prio 0 handle $MARKPRIO1 fw
classid 1:101
tc filter add dev $IFACE parent 1:0 protocol ip prio 1 handle $MARKPRIO2 fw
classid 1:102
tc filter add dev $IFACE parent 1:0 protocol ip prio 2 handle $MARKPRIO3 fw
classid 1:103
tc filter add dev $IFACE parent 1:0 protocol ip prio 3 handle $MARKPRIO4 fw
classid 1:104




Thanks in advance and sorry for the incomplete posting.

Greetings,
 Philipp


_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc


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