Speedbump - TCP-Proxy mit Unterstützung für variable Latenz
(github.com/kffl)- Ein in Go geschriebener TCP-Proxy, mit dem sich verschiedene variable Netzwerkverzögerungen simulieren lassen
Grundlegende Nutzungsbeispiele
- Eine neue Instanz erstellen, die auf Port 2000 lauscht, TCP-Traffic an localhost:80 weiterleitet und eine Basislatenz von 100 ms, eine Sinus-Amplitude von 100 ms (maximale zusätzliche Latenz 200 ms, minimale 0) sowie eine Periode von 1 Minute verwendet:
speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80 - Oder Speedbump mit dem Container-Image
kffl/speedbumpausführen:docker run --net=host kffl/speedbump:latest --latency=100ms --sine-amplitude=100ms \ --sine-period=1m --port=2000 localhost:80 - Eine neue Instanz mit einer Basislatenz von 300 ms erstellen, mit einer Sägezahn-Latenz von 200 ms Amplitude und 2 Minuten Periode, wie in der folgenden Grafik dargestellt:
speedbump --latency=300ms --saw-amplitude=200ms --saw-period=2m --port=2000 localhost:80 - Es ist möglich, mehrere Latenzen gleichzeitig summiert auszuführen.
- Speedbump kann über das Paket
libals Go-Bibliothek verwendet werden.
Meinung von GN⁺:
- Speedbump ist ein nützliches Tool zur Simulation von Netzwerklatenz und kann dabei helfen, die Performance netzwerkbasierter Anwendungen zu testen und zu optimieren.
- Da es in Go geschrieben ist, ist es für Go-Entwickler vertraut und bietet Funktionen, mit denen sich verschiedene Latenzmuster einfach simulieren lassen.
- Es ist Open Source und steht unter der Apache-2.0-Lizenz, sodass es durch Beiträge der Community kontinuierlich verbessert werden könnte.
1 Kommentare
Hacker-News-Kommentare
tcLatenz zu einer bestimmten Schnittstelle hinzufügt, und das funktioniert auch in Docker-Containern gut. Es könnte bereits auf vielen Systemen installiert sein.tc qdisc add dev eth0 root netem delay 100ms