I have the same problem as you, i dont know whats wrong, but i think its not 
our set up, but maybe the algorithm. Anyone has another suggestion?
>I''m trying (without many success) to optimize my DSL connection. My
>principal interest is allowing me to connect from an external machine
>with ssh and vnc thru ssh. I also want to allow 3 internal computers to
>connect from 192.168.0.2-4 and browse the web, etc.
>
>However, once mldonkey is started all the connections seem to go to a
>crawl. This is my preliminary script, modified from wondershaper and
>some mldonkey-specific script:
>
>
>
>  IPTCMD="iptables -A WSHAPER -t mangle -p"
>
>       tc disc del dev $DEV root 2> /dev/null > /dev/null
>       tc disc del dev $DEV ingress 2> /dev/null > /dev/null
>       iptables -t mangle -D POSTROUTING -o $DEV -j WSHAPER 2> /dev/null
>\
>          > /dev/null
>
>       ip link set dev $DEV qlen $QLEN
>       tc qdisc add dev $DEV root handle 1: htb r2q $RQ default 13
>
>       tc class add dev $DEV parent 1: classid 1:1 htb rate
>$[$UPLINK-2]kbit \
>             ceil $[$UPLINK-2]kbit burst ${BURST}k
>       tc class add dev $DEV parent 1:1 classid 1:10 htb rate \
>             $[(($UPLINK-2)* 5)/100]kbit ceil $[$UPLINK-2]kbit prio 0
>       tc class add dev $DEV parent 1:1 classid 1:11 htb rate \
>             $[(($UPLINK-2)*40)/100]kbit ceil $[$UPLINK-2]kbit prio 1
>       tc class add dev $DEV parent 1:1 classid 1:12 htb rate \
>             $[(($UPLINK-2)*50)/100]kbit ceil $[$UPLINK-2]kbit prio 2
>       tc class add dev $DEV parent 1:1 classid 1:13 htb rate \
>             $[(($UPLINK-2)* 5)/100]kbit ceil $[$UPLINK-2]kbit prio 3
>
>       tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
>       tc qdisc add dev $DEV parent 1:11 handle 11: sfq perturb 10
>       tc qdisc add dev $DEV parent 1:12 handle 12: sfq perturb 10
>       tc qdisc add dev $DEV parent 1:13 handle 13: sfq perturb 10
>
>       tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 10 \
>          fw flowid 1:10
>       tc filter add dev $DEV parent 1:0 prio 1 protocol ip handle 11 \
>          fw flowid 1:11
>       tc filter add dev $DEV parent 1:0 prio 2 protocol ip handle 12 \
>          fw flowid 1:12
>       tc filter add dev $DEV parent 1:0 prio 3 protocol ip handle 13 \
>          fw flowid 1:13
>
>      iptables -t mangle -N WSHAPER
>      iptables -t mangle -I POSTROUTING -o $DEV -j WSHAPER
>
>      # Class 10
>      $IPTCMD tcp -m length --length :64 -j MARK --set-mark 10   ## ACKs
>      # Class 11
>      $IPTCMD tcp --dport ssh -j MARK --set-mark 11              ## SSH
>      $IPTCMD tcp --sport ssh -j MARK --set-mark 11
>      $IPTCMD icmp -j MARK --set-mark 11                         ## ICMP
>      $IPTCMD udp --dport domain -j MARK --set-mark 11           ## DNS
>      $IPTCMD all --source 192.168.0.2 -j MARK --set-mark 11     ##
>linuxclient
>      $IPTCMD all --destination 192.168.0.2 -j MARK --set-mark 11
>      $IPTCMD all --source 192.168.0.3 -j MARK --set-mark 11     ##
>linuxlaptop
>      $IPTCMD all --destination 192.168.0.3 -j MARK --set-mark 11
>      $IPTCMD all --source 192.168.0.4 -j MARK --set-mark 11     ##
>compaqlaptop
>      $IPTCMD all --destination 192.168.0.4 -j MARK --set-mark 11
>
>      # Class 12
>      for PORTPROTODEST in $CLASS12 ; do
>         PORT=`echo $PORTPROTODEST | awk -F/ ''{print $1}''`
>         PROTO=`echo $PORTPROTODEST | awk -F/ ''{print
$2}''`
>         DEST=`echo $PORTPROTODEST | awk -F/ ''{print $3}''`
>
>        if [ "$PROTO" = "both" ]; then
>            if [ "$DEST" = "both" ]; then
>               $IPTCMD tcp --dport $PORT -j MARK --set-mark 12
>               $IPTCMD udp --sport $PORT -j MARK --set-mark 12
>               $IPTCMD tcp --sport $PORT -j MARK --set-mark 12
>               $IPTCMD udp --dport $PORT -j MARK --set-mark 12
>            else
>               $IPTCMD tcp --$DEST $PORT -j MARK --set-mark 12
>               $IPTCMD udp --$DEST $PORT -j MARK --set-mark 12
>            fi
>         else
>            if [ "$DEST" = "both" ]; then
>               $IPTCMD $PROTO --dport $PORT -j MARK --set-mark 12
>               $IPTCMD $PROTO --sport $PORT -j MARK --set-mark 12
>            else
>               $IPTCMD $PROTO --$DEST $PORT -j MARK --set-mark 12
>            fi
>         fi
>       done
>
>       # Class 13 default
>       $IPTCMD udp --sport 4660:4670 -j MARK --set-mark 13
>       $IPTCMD udp --dport 4660:4670 -j MARK --set-mark 13
>       $IPTCMD udp --dport 4242 -j MARK --set-mark 13
>
>       tc qdisc add dev $DEV handle ffff: ingress
>
>       tc filter add dev $DEV parent ffff: protocol ip prio 4 u32 match
>ip src \
>          0.0.0.0/0 police rate $[${DOWNLINK}-2]kbit burst 10k drop
>flowid :1
>
>What do you think? :-(. TIA.
>
>
>_______________________________________________
>LARTC mailing list / LARTC@mailman.ds9a.nl
>http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
_________________________________________________________________
Charla con tus amigos en lĂnea mediante MSN Messenger: 
http://messenger.yupimsn.com/
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/