Différences

Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue comparative

scripts:exemples:bandwidth [2007/01/27 15:10] (Version actuelle)
lois page créée, scripts collés
Ligne 1: Ligne 1:
 +====== Limitation de bande passante ======
 +
 +Ces 3 scripts sont basé sur l'​outil tc, fourni dans le paquet iproute2. Ils utilisent le scheduler réseau HTB. Cet exemple traite d'une limitation de bande passante sur le port 80 de la machine hôte.
 +
 +<code bash>
 +#!/bin/sh
 +# script /​etc/​init.d/​limit-bandwidth
 +# run the htb-* scripts to limit (or not) the bandwith
 +# Author: Loïs
 +#
 +SCRDIR="/​root/​nyx/​scripts"​
 +BINSTART="​htb-start.sh"​
 +BINSTOP="​htb-stop.sh"​
 +MODULE="​sch_htb"​
 +ETH_DEV="​eth0"​
 +
 +# if scripts not present, stop & exit.
 +test -x $SCRDIR/​$BINSTART || exit 0
 +test -x $SCRDIR/​$BINSTOP || exit 0
 +
 +case "​$1"​ in
 +        start)
 +                echo "​starting HTB on eth0, port 80: "
 +                modprobe $MODULE
 +                sleep 2
 +                $SCRDIR/​$BINSTART
 +                echo ""​
 +                ;;
 +        stop)
 +                echo "​stopping HTB on eth0, port 80: "
 +                $SCRDIR/​$BINSTOP
 +                modprobe -r $MODULE
 +                echo ""​
 +                ;;
 +        restart)
 +                echo "​restarting HTB on eth0, port 80: "
 +                $SCRDIR/​$BINSTOP
 +                modprobe -r $MODULE
 +                sleep 2
 +                modprobe $MODULE
 +                sleep 2
 +                $SCRDIR/​$BINSTART
 +                echo ""​
 +                ;;
 +        status)
 +                echo "​bandwith limits status: "
 +                tc -s qdisc show dev $ETH_DEV
 +                tc -s class show dev $ETH_DEV
 +                echo ""​
 +                ;;
 +        *)
 +                echo "Limit the bandwidth apache2 use"
 +                echo "​Usage:​ $0 {start|stop|restart|status}"​
 +                echo ""​
 +                exit 1
 +                ;;
 +esac
 +
 +exit 0
 +</​code>​
 +
 +<code bash>
 +#!/bin/sh
 +# htb-start.sh
 +# Author: gentoo-wiki
 +# change these values to suit your needs
 +ETH_DEV="​eth0"​
 +LINK_SPEED="​2048Kbit"​
 +UPLOAD_SPEED="​1024Kbit"​
 +PORT="​80"​
 +
 +# delete previous root node
 +tc qdisc del dev $ETH_DEV root
 +
 +# create root node
 +tc qdisc add dev $ETH_DEV root handle 1: htb default 11
 +
 +# create LINK class
 +tc class add dev $ETH_DEV parent 1: classid 1:1 htb rate $LINK_SPEED
 +
 +# create our HTTP shaping class
 +tc class add dev $ETH_DEV parent 1:1 classid 1:10 htb rate $UPLOAD_SPEED
 +
 +# create our REST class for unutilized bandwidth
 +tc class add dev $ETH_DEV parent 1:1 classid 1:11 htb rate $LINK_SPEED
 +
 +# create the filter for the HTTP class, we filter on source port 80 (http)
 +tc filter add dev $ETH_DEV protocol ip parent 1:0 prio 1 u32 match ip sport $PORT 0xffff flowid 1:10
 +</​code>​
 +
 +<code bash>
 +#!/bin/sh
 +# htb-stop.sh
 +# Author: gentoo-wiki
 +ETH_DEV="​eth0"​
 +
 +tc qdisc del dev $ETH_DEV root
 +</​code>​
 +
  
 
scripts/exemples/bandwidth.txt · Dernière modification: 2007/01/27 15:10 par lois