A volte è utile limitare la banda utilizzata da alcuni dei vostri programmi, forse si desidera limitare il vostro browser o client FTP, e questi programmi non hanno un modo nativo per limitare la banda di rete in ingresso e/o di uscita che stanno utilizzando, c’è una piccola applicazione in grado di risolvere questo problema per voi: Trickle
trickle è uno shaper di rete portatile e leggero con funzionamento in userspace. Può funzionare in modalità collaborativa (assieme a trickled) o in modalità stand alone.
trickle funziona sfruttando il preloading delle librerie dinamiche in Unix. Essenzialmente si prevede, per l’applicazione, una nuova versione della funzionalità che è necessaria per inviare e ricevere dati attraverso socket. Essa limita poi il traffico basabdosi su un ritardo nell’invio e la ricezione di dati su un socket. trickle funziona interamente in userspace e non richiede privilegi di root.
Consente di limitare il consumo di larghezza di banda di un programma senza la necessità di alcun tipo di patch del kernel, configurazioni del firewall o l’accesso di root alla macchina su cui si desidera utilizzarlo. Trickle può essere eseguito in modalità collaborativa e modalità stand alone. In modalità collaborativa (o demone) può limitare la banda utilizzata da un gruppo di programmi, allo stesso tempo. In modalità stand alone, trickle limita semplicemente il programma specificato.
Installazione
Trickle è disponibile su Debian e Ubuntu, quindi per installarlo si può usare il gestore standard di pacchetti:
sudo aptitude install trickle |
uso base
Il modo più semplice per usare Trickle è in modalità stand-alone, lo si usa con un unico comando, in questo metodo la sintassi è:
trickle -d Download_Bandwidth -u Upload_Bandwidth command |
Esempio 1 : Limitare la banda in download 20kbps per wget
trickle -d 20 wget http://linuxaria.com |
Esempio 2 : Limitare a 200kpbs la banda in Download per un aggiornamento del sistema con aptitude:
trickle -d 200 aptitude upgrade |
Esempio 3: Fa partire Firefox limitando la sua banda in upload a 10 KB/s, e download a 20 KB/s.
trickle -u 10 -d 20 firefox |
Utilizzare Trickle come demone modalità collaborativa
Per far partire Trickle in modalità demone e limitare tutta la banda, utilizzare il comando trickled con la seguente sintassi:
sudo trickled -d Download_Bandwidth -u Upload_Bandwidth |
Esempio 1; avviare il demone, e il limite upload e download a 100KB
trickled -d 100 -u 100 |
Questo farà partire il demone trickled che limiterà la banda totale a disposizione di tutti i programmi eseguiti tramite trickle a 100 KB/s sia in upload che download. Quindi, se si esegue un singolo programma via trickle, si può consumare fino a 100 KB/s. Due programmi possono consumare ognuno 50 KB/s, ecc
File di configurazione di Trickle
Il file di configurazione di trickle si trova in /etc/trickled.conf. Contiene due valori di default, che sono commentati.
Un esempio di configurazione potrebbe essere :
[ssh] Priority = 1 Time-Smoothing = 0.1 Length-Smoothing = 1 [www] Priority = 2 Time-Smoothing = 5 Length-Smoothing = 10 [ftp] Priority = 8
I Numeri nelle priorità consentono di impostare un servizio ad una priorità maggiore rispetto ad un altro. I servizi con un numero basso hanno più larghezza di banda dei servizi con numeri più alti. Usando le priorità, è possibile connettersi a un servizio remoto come ad esempio SSH , anche se la larghezza di banda di rete ha raggiunto il massimo.
Il tempo di livellamento (Time-Smoothing) determina con quale intervallo Trickle cercherà di lasciare spedire i dati dell’applicazione. Valori più piccoli si tradurranno in una sessione più continua (liscia, smooth), mentre i valori più grandi possono produrre esplosioni nell’invio e ricezione dei dati. I valori più piccoli (0,1 – 1 s) sono ideali per le applicazioni interattive, mentre valori leggermente più grandi (1 – 10 s) sono migliori per le applicazioni che necessitano di effettuare dei trasferimenti di massa.
La lunghezza di livellamento (Length-Smoothing) è un ripiego alla funzione di tempo di livellamento. Se Trickle non può soddisfare le richieste nel tempo di livellamento, potrà invece ripiegare sull’invio dei dati dopo una certa lunghezza in KB. Il valore predefinito è 10 KB.
Note finali
Trickle non funziona con programmi in modalità setuid
La ragione di questo è che i programmi in setuid ignorano la funzionalità LD_PRELOAD per motivi di sicurezza. Trickle richiede questa funzionalità per limitare la banda. (Inoltre, non funziona con programmi linkati staticamente per lo stesso motivo.)
Trickle funziona solo con programmi che utilizzano l’interfaccia socket per la trasmissione e la ricezione dei dati
Inoltre, funziona solo con connessioni TCP, non con le connessioni UDP.
Popular Posts:
- None Found
This is really an very interesting and informative post. Hats off to this guy for sharing the superb knowledge on Trickle. Though I was known by the ,most part of this info but the only thing amazed me is Trickle only works with programs that use the socket interface for transmitting and receiving data
Also, it only works with TCP connections, not with UDP connections. This will really help me to take a decision on configuring/buying it now.
Thank you So much
Prakash Ghai
Director