domingo, 6 de marzo de 2016

Cómo limitar el ancho de banda en Linux

Es algo común en las conexiones ADSL domésticas, sobre todo cuando el router es el proporcionado por la operadora o no tiene una buena gestión de la calidad de servicio: cuando un terminal hace una subida de un archivo muy grande, la conexión se queda prácticamente muerta.

Este problema tiene bastantes causas y por tanto una solución difícil: por un lado, el propio diseño de los protocolos que se utilizan actualmente; por otro lado, la propia gestión de las transferencias por los dispositivos que conectamos y, también, el uso de conexiones asimétricas (como la ADSL).

Cuando quiero subir a través de la ADSL algún fichero de varios gigas suelo utilizar la noche para evitar este problema de que la conexión "se quede muerta". Sin embargo, hay veces en las que la noche no es suficiente, la subida sigue al día siguiente y cunde el pánico al no haber conexión fluida a Internet.

Así que encontré una solución cómoda y rápida: poder limitar la tasa de transferencia de subida del ordenador. De esta forma, en vez de utilizar el máximo posible por la ADSL, se limita esa tasa y de esta forma, sí hay "hueco" en la conexión para que otros terminales puedan tener salida a Internet.

En Linux, es muy sencillo hacerlo usando wondershaper. Se instala rápidamente desde el repositorio habitual de la distribución y se maneja desde la línea de comandos.

Para activar el límite de la tasa de transferencia para una interfaz de red hay que utilizar el siguiente comando:
sudo wondershaper interfaz limiteDeBajada limiteDeSubida

Los límites se indican sin unidad y se consideran kbps. Por ejemplo, el comando sudo wondershaper eth0 10000 200 limitará a 10000kbps ∼ 1250KBps la tasa de bajada y a 200kbps ∼ 25KBps la tasa de subida.

Limitar la tasa de subida, como es lógico, hará que la transferencia tarde más tiempo. Eventualmente, se podría dar el caso de que expire el tiempo máximo de transferencia con un servidor web: es algo que tenemos que valorar en caso de usar este tipo de transferencia.

El siguiente comando quita los límites de transferencia:
sudo wondershaper clear interfaz

Para finalizar, una consideración: evitar el problema que se ha descrito es sencillo limitando la tasa de bajada. No sería necesario preocuparse tanto por la de subida.

¿Qué otra forma conoces para solucionar este problema? Como siempre, cualquier comentario es bienvenido! :)

No hay comentarios:

Publicar un comentario