Trickle: gestionando el ancho de banda por aplicación
¿La navegación en Internet se vuelve lenta? ¿Levantas una aplicación y literalmente se «come» todo el ancho de banda de tu conexión? ¿Necesitas descargar grandes volúmenes sin que se entorpezcan otros servicios? Trickle te permite gestionar de manera muy simple el ancho de banda de tu conexión en tu sistema Linux!
Nociones
Imagina a tu conexión a Internet como el caño de agua que te provee agua a toda la casa. Si abres la canilla de la cocina tendrás toda la presión disponible, pero si abres la canilla del baño, tendrás la mitad del caudal de agua en la cocina, y la otra mitad en el baño. Así, si abres todas las canillas, tendrás muy poquita agua en cada una..
Imagina que el caño de agua ahora es tu conexión a Internet. Si abres un navegador tendrás todo el ancho de banda disponible para poder navegar. Ahora, si abres un cliente de torrent que descarga de manera contínua, al navegador le quedará poca «agua» para poder navegar con fluidez, y tendrás una mala experiencia de usuario.
La pregunta es: ¿Se puede reducir el ancho de banda consumido por el cliente de torrent? Sí, el cliente generalmente tiene este tipo de control para evitar que se monopolice el uso del canal.
Ahora bien, no todas las aplicaciones toman este tipo de medidas, y no todas permiten gestionar el ancho de banda apropiadamente. Si abres un streaming de audio o video en un navegador, o descargas archivos grandes utilizando ftp, o aplicaciones como wget, sencillamente estas aplicaciones monopolizarán el uso de tu caño de Internet completo.
Usando trickle por comando
Trickle es una sencilla aplicación que permite gestionar localmente en tu computadora el ancho de banda otorgado a una aplicación.
Es decir, si abres un cliente de torrent y no quieres que supere los 15kBps de download, ni los 5kBps de upload, y a su vez, quieres descargar un archivo grande como una película utilizando wget, pero en segundo plano, nunca a mas de 20kBps, trickle es tu solución.
Instalación de trickle
En distribuciones como Debian podremos hacer
sudo apt-get install trickle
En ArchLinux:
sudo pacman -S trickle
Lo mismo con yum para distros basadas en RPM. En fin, generalmente el paquete en el repo oficial de la distro se denomina trickle.
Algunas opciones interesantes del comando
Trickle recorta el ancho de banda de aplicaciones que utilicen sockets de tipo SOCK_STREAM. Para los mortales, conexiones TCP, como http, ftp, etc… de hecho, casi la totalidad de las conexiones que actualmente tenemos en nuestra computadora (salvo DNS o streaming sin compresión, por ejemplo).
Veamos algunas opciones interesantes del comando:
- –d rate: Permite especificar el ratio de descarga (downstream), en KB/s (kiloBytes por segundo)
- –u rate: Permite especificar el ratio de subida (upstream), en KB/s (kiloBytes por segundo)
- -t segundos: permite seleccionar los segundos de suavizado al recortar el ancho de banda. Mientras es más chico el valor, la transferencia de la aplicación será más contínua, mientras que con valores mayores, las transferencias producirán ráfagas. En general, valores de 0.1 a 1 segundo son ideales para aplicaciones interactivas, como la navegación web, mientras que valores entre 1 y 10 segundos son aconsejados para aplicaciones de transferencia contínua, como descargas o subidas de archivos e Internet.
El comando tiene otras opciones, pero estas son las principales, más que nada las dos primeras, -d y -u.
Usando trickle
Si quisiéramos, por ejemplo, ejecutar un comando wget para descargar un archivo grande, como una iso de una distribución de Linux, una película, etc, y no queremos que supere los 50kBps de descarga en ningún momento, podremos ejecutar el comando:
trickle -d 50 wget http://cdimage.debian.org/debian-cd/8.5.0/multi-arch/iso-cd/debian-8.5.0-amd64-i386-netinst.iso
Si corremos un cliente de ftp como gftp y queremos gestionar desde «afuera» tanto el ancho de banda de descarga como el de subida, podemos hacer:
trickle -d 70 -u 30 gftp
De esta forma gftp nunca podrá superar los 70kBps de descarga ni los 30kBps de subida durante su ejecución.
Por supuesto, si cerramos la aplicación y la abrimos nuevamente sin el comando trickle delante, podrá disponer de todo el ancho de banda de nuestra conexión, y lo gestionará con su propio gestor de ancho de banda, según sea el caso.
Espero les resulte de utilidad!!
Existen otras aplicaciones que nos servirán de manera similar, o filtros de tráfico y contenido, trickle es muy simple para utilizar en nuestro ordenador.
Por supuesto, no está pensada para gestionar el ancho de banda en una red, no se le puede «decir» a trickle que un host interno consuma como máximo cierto y determinado ancho de banda de upstream o downstream… para esto existen herramientas apropiadas, como TC (traffic control) que manipulan al núcleo Linux para gestionar estas características.
4 comentarios
Federico Peralta · 17 julio, 2016 a las 14:49
Muy buen articulo Diego!
@brazo grande.
Diego Córdoba · 18 julio, 2016 a las 16:04
Muchas gracias Fede!! Abrazo che!!
Luis Zambrana · 22 noviembre, 2016 a las 19:57
Diego exelente el tema de trickle. Consulta se podra guardar un consumo diario de aplicaciones de un pc?
Me encantaria tener un log por pc de las aplicaciones que mas consumen y poder consultarlo.
Diego Córdoba · 24 noviembre, 2016 a las 00:16
Mmm no se si guardar un log completo en modo histórico… en general cuando analizás el consumo de ancho de banda es en el momento en que notás un problema. Para ver instantáneamente qué está pasando en el sistema con las aplicaciones podés usar nethogs, te paso una captura… tiene una opción para trazabilidad pero sinceramente no lo he probado… voy a investigar y publico un artículo al respecto así completamos la info y por ahí te sirve.
Slds!
Los comentarios están cerrados.