Speedbump - Değişken gecikmeyi destekleyen TCP proxy
(github.com/kffl)- Go diliyle yazılmış bir TCP proxy'si; çeşitli değişken ağ gecikmelerini simüle edebilir
Temel kullanım örnekleri
- 2000 portunda dinleyen yeni bir örnek oluşturup TCP trafiğini localhost:80'e proxy'lemek; varsayılan gecikme 100ms, sinüs dalgası genliği 100ms (maksimum ek gecikme 200ms, minimum 0) ve periyot 1 dakika olacak şekilde:
speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80 - Ya da speedbump'ı
kffl/speedbumpcontainer image'ı ile çalıştırırken:docker run --net=host kffl/speedbump:latest --latency=100ms --sine-amplitude=100ms \ --sine-period=1m --port=2000 localhost:80 - Varsayılan gecikmesi 300ms olan ve aşağıdaki grafikte gösterildiği gibi genliği 200ms, periyodu 2 dakika olan testere dişi dalga gecikmesine sahip yeni bir örnek oluşturmak için:
speedbump --latency=300ms --saw-amplitude=200ms --saw-period=2m --port=2000 localhost:80 - Birden fazla gecikme toplamını aynı anda çalıştırmak mümkündür.
- Speedbump,
libpaketi aracılığıyla bir Go kütüphanesi olarak kullanılabilir.
GN⁺ görüşü:
- Speedbump, ağ gecikmesini simüle etmek için kullanışlı bir araç; ağ tabanlı uygulamaların performansını test etmeye ve optimize etmeye yardımcı olabilir.
- Go diliyle yazıldığı için Go geliştiricilerine tanıdık gelir ve çeşitli gecikme kalıplarını kolayca simüle etmeyi sağlayan özellikler sunar.
- Açık kaynaklıdır ve Apache 2.0 lisansı altında sunulduğundan, topluluk katkılarıyla sürekli geliştirilme potansiyeline sahiptir.
1 yorum
Hacker News görüşleri
tckomutunu kullanmayı öğrendim ve bu Docker container'larında da gayet iyi çalışıyor. Zaten birçok sistemde kurulu olabilir.tc qdisc add dev eth0 root netem delay 100msdummynetadlı bir özellik var; ipfw'nin bir parçası olarak gecikme, bant genişliği sınırlaması, kuyruk boyutu ve paket kaybı enjekte edebiliyor. MacOS'taki işleve benziyor.