Trickle: gestionando el ancho de banda por aplicación

Publicado por Diego Córdoba en

¿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..

trickleImagina 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? , 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.


trickleEspero 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.

¿Conoces otra herarmienta? Puedes comentarla y sumar info en el artículo!! Gracias!


Diego Córdoba

- Ingeniero en Informática - Mg. Teleinformática - Tesis pendiente - Docente universitario - Investigador