libellug

<styles>...

Traffic shaping express

Une superbe solution, toute simple, pour gérer le trafic réseau
Loin des complexités (sous linux en tous cas) du marquage des paquets, puis de l’écriture d’un script de gestion de file d’attente...

Et concrètement ?

Question 1 :

  • comment limiter la vitesse d’upload de ftp lorsque je « pousse » sur mon serveur un gros fichier, ce qui rend ma connexion quasi-inutilisable pendant ce temps ?

Réponse :

$ trickle -s -u 5 ftp

Explication : ma ligne au boulot dispose d’un upload de 64 Kbit/s, soit 8 KB/s. Je vais limiter fortement mon upload ftp à 5 KB/s, pour ne pas saturer le lien montant et permettre un trafic descendant normalement fluide dans le même temps.

trickle est appelé avec l’option -s, pour « standalone ». Il est en effet possible de lancer un serveur trickled, gérant les limitations de plusieurs programmes, comme on le verra.

Démonstration :

$ trickle -s -u 5 ftp ftp.electronicforest.net
Connected to ftp.electronicforest.net.
220 "electronic forest secure ftpd server"
Name : mylogin
331 Please specify the password.
Password: ***
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put bigfile.tar.bz2
local: bigfile.tar.bz2 remote: bigfile.tar.bz2
200 PORT command successful.
150 Ok to send data.
^c
send aborted
waiting for remote to finish abort
226 File receive OK.
583680 bytes sent (5.2 Kbytes/s)
ftp> 221 Goodbye.

Et pendant le temps de l’essai, ma connexion ssh ouverte simultanément n’a pas connu de ralentissement notable :)

Question 2 :

  • Comment simuler une connexion par modem pour tester le comportement de mon nouveau site ouaibe, visité via un ancien modem 56K ?

Réponse :

$ trickle -s -d 6 firefox-bin

Explication : les modems anciens 56 K (norme V92, si je ne dis pas d’âneries) n’atteignent pas ce débit. En fait, ils plafonnent aux environs de 50K, et il s’agit de Kbit/s... :) Donc, en fait, environ 6 KByte/s

Le test a quelque chose de réjouissant, et rappelle de bons —et pas si anciens— souvenirs...

A titre personnel, ayant installé firefox dans un directory local, j’ai également dû préciser le chemin des bibliothèques (d’habitude, les scripts firefox et run-mozilla.sh se chargent de lancer firefox avec un environnement approprié).

La commande passée est alors :

$ cd firefox
$ LD_LIBRARY_PATH=./ \
    trickle -s -d 6 ./firefox-bin

Mêmes effets :)

Au quotidien, ce petit programme permet de gérer souplement les problèmes de limitation de bande passante, nous allons en voir quelques exemples...

pages : << 1 2 3 >>

notes

[1] Le site d’origine de libsafe ne semble plus répondre, et le projet freshmeat est abandonné

Poster un commentaire