Speedbump - परिवर्तनीय latency को सपोर्ट करने वाला TCP proxy
(github.com/kffl)- Go में लिखा गया एक TCP proxy, जो विभिन्न प्रकार की परिवर्तनीय network latency को simulate कर सकता है
बुनियादी उपयोग उदाहरण
- पोर्ट 2000 पर listen करने वाला एक नया instance बनाकर TCP traffic को localhost:80 पर proxy करें, जहाँ default latency 100ms है, sine wave amplitude 100ms है (अधिकतम अतिरिक्त latency 200ms, न्यूनतम 0), और period 1 मिनट है:
speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80 - या kffl/speedbump container image का उपयोग करके speedbump चलाते समय:
docker run --net=host kffl/speedbump:latest --latency=100ms --sine-amplitude=100ms \ --sine-period=1m --port=2000 localhost:80 - default latency 300ms के साथ एक नया instance बनाएं, जिसमें नीचे दिए गए graph की तरह amplitude 200ms और period 2 मिनट की sawtooth wave latency हो:
speedbump --latency=300ms --saw-amplitude=200ms --saw-period=2m --port=2000 localhost:80 - एक ही समय में कई latency के योग को चलाना संभव है.
- Speedbump को
libpackage के माध्यम से Go library के रूप में इस्तेमाल किया जा सकता है.
GN⁺ की राय:
- Speedbump network latency को simulate करने के लिए एक उपयोगी tool है, जो network-आधारित applications की performance test और optimization में मदद कर सकता है.
- यह Go में लिखा गया है, इसलिए Go developers के लिए परिचित है, और विभिन्न latency patterns को आसानी से simulate करने की क्षमता देता है.
- यह open source है और Apache 2.0 license का पालन करता है, इसलिए community के योगदान के जरिए इसके लगातार बेहतर होने की संभावना है.
1 टिप्पणियां
Hacker News राय
tccommand का इस्तेमाल करके किसी खास interface पर latency जोड़ना सीखा, और यह Docker container में भी अच्छी तरह काम करता है। यह कई systems में पहले से installed भी हो सकता है.tc qdisc add dev eth0 root netem delay 100mslatency monkeyनाम का एक tool बनाया था। downstream services के धीमे होने का पता लगाना, service पूरी तरह unavailable होने का पता लगाने से कहीं ज़्यादा मुश्किल है। यह tool packets को एक तय अनुपात में drop करता है ताकि retransmission हो, और इससे packets delay हो सकते हैं या उनका order बदल सकता है। network access के लिए error handling code में इससे बहुत-सी समस्याएँ मिलीं.outboxसुविधा की कमी होती है। यह सवाल उठाया गया कि disaster relief situations में आम connectivity समस्याओं को simulate करने के लिए reference toxiproxytest case mutatorकौन बना सकता है.comcastनाम अपने-आप में बहुत कुछ कह देता है.clumsyहै.dummynetनाम की सुविधा है, जो ipfw का हिस्सा है, और इससे latency, bandwidth limits, queue size, और packet loss inject किए जा सकते हैं। यह MacOS जैसी ही क्षमता है.