Limitare l'uso della banda con trickle

Quando lanciamo un processo che esegue un download, questo usa tutta la banda disponibile. A volte questo comportamento può essere poco simpatico.

Pensiamo ad esempio al download di una immagine ISO di qualche giga di dimensione: se si usa l'ADSL casalinga, tutta la banda sarà occupata e a meno che non si abbiano politiche di traffic shaping a livello di rete, il resto delle applicazioni che devono accedere a internet subiranno dei rallentamenti significativi.

Se vogliamo una soluzione software che non implichi di dover scrivere delle specifiche regole di netfilter, possiamo ricorrere a trickle.

Come riporta il suo autore:

trickle is a portable lightweight userspace bandwidth shaper. It can run in collaborative mode (together with trickled) or in stand alone mode.

Per installare trickle è sufficiente un:

  # apt-get install trickle

La sintassi da usare per richiamarlo è:

# trickle -h
Usage: trickle [-hvVs] [-d <rate>] [-u <rate>] [-w <length>] [-t <seconds>]
               [-l <length>] [-n <path>] command ...
        -h           Help (this)
        -v           Increase verbosity level
        -V           Print trickle version
        -s           Run trickle in standalone mode independent of trickled
        -d <rate>    Set maximum cumulative download rate to <rate> KB/s
        -u <rate>    Set maximum cumulative upload rate to <rate> KB/s
        -w <length>  Set window length to <length> KB 
        -t <seconds> Set default smoothing time to <seconds> s
        -l <length>  Set default smoothing length to <length> KB
        -n <path>    Use trickled socket name <path>
        -L <ms>      Set latency to <ms> milliseconds
        -P <path>    Preload the specified .so instead of the default one
#

Supponiamo quindi di voler scaricare la iso dvd di debian wheezy limitando la banda a 50kB in download e 10kB in upload. Il comando da usare sarà:

gtrev@gundam:/tmp$ trickle -s -d 50 -u 10 wget -c http://cdimage.debian.org/debian-cd/7.8.0/amd64/iso-dvd/debian-7.8.0-amd64-DVD-1.iso                                                                               --2015-02-10 23:41:16--  http://cdimage.debian.org/debian-cd/7.8.0/amd64/iso-dvd/debian-7.8.0-amd64-DVD-1.iso
Resolving cdimage.debian.org (cdimage.debian.org)... 130.239.18.173, 130.239.18.163, 130.239.18.165, ...
Connecting to cdimage.debian.org (cdimage.debian.org)|130.239.18.173|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://gensho.acc.umu.se/debian-cd/7.8.0/amd64/iso-dvd/debian-7.8.0-amd64-DVD-1.iso [following]
--2015-02-10 23:41:16--  http://gensho.acc.umu.se/debian-cd/7.8.0/amd64/iso-dvd/debian-7.8.0-amd64-DVD-1.iso
Resolving gensho.acc.umu.se (gensho.acc.umu.se)... 130.239.18.176, 2001:6b0:e:2018::176
Connecting to gensho.acc.umu.se (gensho.acc.umu.se)|130.239.18.176|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3972317184 (3.7G), 3971015276 (3.7G) remaining [application/x-iso9660-image]
Saving to: `debian-7.8.0-amd64-DVD-1.iso'
 
 0% [                                           ] 2,681,743   52.4K/s  eta 20h 4m 

Come si può vedere dall'output di wget la velocità di download è di 52.4K/s molto vicina ai 50K/s richiesti.

Blog: 

Programmazione: 

Aggiungi un commento