URL: https://linuxfr.org/forums/linux-noyau/posts/limitation-de-la-bande-passante-avec-tc Title: Limitation de la bande passante avec tc Authors: Sphax Date: 2011年01月24日T17:08:21+01:00 Tags: postgresql Score: 0 Bonjour, je cherche à limiter sur un serveur de backup la bande passante utilisée par des dump postgresql à 30mbps maximum. En fouillant je n'ai rien trouvé d'autre que d'utiliser "tc" pour le faire, donc en suivant plusieurs howto j'ai ce script: tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1: htb default 1 r2q 160 tc class add dev eth0 parent 1: classid 1:1 htb rate 32000kbit burst 1m tc class add dev eth0 parent 1:1 classid 1:2 htb rate 32000kbit ceil 32000kbit burst 1m tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1000kbit ceil 1000kbit burst 1m tc filter add dev eth0 protocol ip parent 1:2 prio 1 handle 12 fw flowid 1:2 tc filter add dev eth0 protocol ip parent 1:3 prio 1 handle 13 fw flowid 1:3 tc qdisc add dev eth0 parent 1:2 handle 2: sfq perturb 10 tc qdisc add dev eth0 parent 1:3 handle 3: sfq perturb 10 La 3eme classe est là juste pour tester. J'ai aussi ces règles dans mon firewall: iptables -t mangle -A POSTROUTING -o eth0 -m tcp -m mark -p tcp --sport 5432 -j CLASSIFY --set-class 1:2 --mark 0x12 iptables -t mangle -A POSTROUTING -o eth0 -m tcp -m mark -p tcp --sport 80 -j CLASSIFY --set-class 1:3 --mark 0x13 Ce que je veux c'est que le trafic provenant d'un serveur pgsql n'utilise pas plus de 32 Mbps, et que le trafic provenant d'un serveur http n'utilise pas plus de 1 Mbps (afin de tester). Le problème c'est qu'après avoir appliqué ces scripts, en faisant un wget du dernier kernel la vitesse monte à 8 voire 9 Mo/s, ce qui fait plus de 64 Mbps, donc clairement ça ne fonctionne pas. Du coup je me demande, est-ce que tc est capable de faire ce que je veux ? Là j'ai l'impression qu'il ne limite pas tant que la bande passante est suffisante, autrement dit que si j'avais un trafic quelconque qui voudrait utiliser 90 Mbps, il pourrait pas car tc garantit 30 Mbps au trafic pgsql. Ce ne sont que des suppositions, j'ai pas lu le manuel en entier. Merci d'avance.