Es posible limitar la velocidad de tráfico utilizando las herramientas tc
y netem
, pero esto limitará la velocidad de la interfaz de red de la computadora. Supongo que usa solo wget
o curl
ninguna otra aplicación está intercambiando tráfico a través de la interfaz de red.
tc
usa Token Bucket Filter (TBF) para controlar la velocidad.
Un ejemplo de TBF sería el siguiente (ref. Http://www.lartc.org/manpages/tc-tbf.html ):
Para adjuntar un TBF con una velocidad máxima sostenida de 0.5mbit / s, una tasa máxima de 1.0mbit / s, un búfer de 5 kilobytes, con un límite de tamaño de cola pre-bucket calculado para que el TBF cause como máximo 70 ms de latencia, con un comportamiento de tasa de pico perfecto , problema:
# tc qdisc add dev eth0 root tbf rate 0.5mbit \ burst 5kb latency 70ms peakrate 1mbit \ minburst 1540
Otro ejemplo de usign tc y netem sería el siguiente (que se encuentra en http://www.linuxfoundation.org/collaborate/workgroups/networking/netem ):
No hay control de velocidad incorporado a la disciplina netem, en su lugar use una de las otras disciplinas que sí lo hacen. En este ejemplo, utilizamos Token Bucket Filter (TBF) para limitar la salida.
Para agregar el retraso de cada paquete que va / viene a través de la interfaz eth0
# tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
para agregar la velocidad de datos en tbf, el tamaño del búfer de paquetes y el límite máximo de ráfaga
# tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
Para ver la lista de reglas asignadas en tc para la interfaz eth0
# tc -s qdisc ls dev eth0
El resultado del comando anterior sería el siguiente
qdisc netem 1: limit 1000 delay 100.0ms
Sent 0 bytes 0 pkts (dropped 0, overlimits 0 )
qdisc tbf 10: rate 256Kbit burst 1599b lat 26.6ms
Sent 0 bytes 0 pkts (dropped 0, overlimits 0 )
Verifique las opciones para el búfer y limite, ya que puede encontrar que necesita valores predeterminados más grandes que estos (están en bytes)