Es ist möglich, die Datenverkehrsrate mit den Tools tc
und zu begrenzen netem
, dies begrenzt jedoch die Rate für die Netzwerkschnittstelle des Computers. Ich gehe davon aus, dass Sie nur wget
oder curl
keine andere Anwendung verwenden, die Datenverkehr über die Netzwerkschnittstelle austauscht.
tc
Steuert die Rate mithilfe des Token-Bucket-Filters (TBF).
Ein Beispiel für TBF wäre wie folgt (siehe http://www.lartc.org/manpages/tc-tbf.html ):
Um eine TBF mit einer anhaltenden maximalen Rate von 0,5 MBit / s zuzuordnen, muss ein Peakrate von 1,0 MBit / s, ein 5-Kilobyte-Puffer mit einer Größenbeschränkung vor der Bucket-Warteschlange so berechnet werden, dass die TBF bei perfektem Peakrate-Verhalten höchstens 70 ms Latenz verursacht , Problem:
# tc qdisc add dev eth0 root tbf rate 0.5mbit \ burst 5kb latency 70ms peakrate 1mbit \ minburst 1540
Ein weiteres Beispiel für die Verwendung von tc und netem ist (zu finden unter http://www.linuxfoundation.org/collaborate/workgroups/networking/netem ):
In der netem-Disziplin ist keine Geschwindigkeitskontrolle integriert. Verwenden Sie stattdessen eine der anderen Disziplinen, die die Geschwindigkeitskontrolle durchführen. In diesem Beispiel verwenden wir Token Bucket Filter (TBF), um die Ausgabe zu begrenzen.
Addiert die Verzögerung jedes Pakets, das die Schnittstelle eth0 durchläuft / passiert
# tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
um die Datenrate in tbf, die Paketpuffergröße und das maximale Burst-Limit zu addieren
# tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
Zeigt die Liste der in tc zugewiesenen Regeln für die Schnittstelle eth0 an
# tc -s qdisc ls dev eth0
Die Ausgabe des obigen Befehls wäre wie folgt
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 )
Überprüfen Sie die Optionen für den Puffer und das Limit, da Sie möglicherweise größere Standardwerte als diese benötigen (diese sind in Byte angegeben).