Speedbump - พร็อกซี TCP ที่รองรับเลย์เทนซีแบบแปรผัน
(github.com/kffl)- พร็อกซี TCP ที่เขียนด้วยภาษา Go ซึ่งสามารถจำลองความหน่วงเครือข่ายแบบแปรผันได้หลากหลายรูปแบบ
ตัวอย่างการใช้งานพื้นฐาน
- สร้างอินสแตนซ์ใหม่ที่รับฟังบนพอร์ต 2000 เพื่อพร็อกซีทราฟฟิก TCP ไปยัง localhost:80 โดยมีความหน่วงพื้นฐาน 100ms, แอมพลิจูดคลื่นไซน์ 100ms (ความหน่วงเพิ่มเติมสูงสุด 200ms, ต่ำสุด 0) และคาบ 1 นาที:
speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80 - หรือเมื่อรัน speedbump โดยใช้คอนเทนเนอร์อิมเมจ kffl/speedbump:
docker run --net=host kffl/speedbump:latest --latency=100ms --sine-amplitude=100ms \ --sine-period=1m --port=2000 localhost:80 - สร้างอินสแตนซ์ใหม่ที่มีความหน่วงพื้นฐาน 300ms และมีความหน่วงแบบคลื่นฟันเลื่อยที่มีแอมพลิจูด 200ms คาบ 2 นาที ตามที่แสดงในกราฟด้านล่าง:
speedbump --latency=300ms --saw-amplitude=200ms --saw-period=2m --port=2000 localhost:80 - สามารถรันการรวมความหน่วงหลายแบบพร้อมกันได้
- Speedbump สามารถใช้งานเป็นไลบรารี Go ผ่านแพ็กเกจ
libได้
ความคิดเห็นของ GN⁺:
- Speedbump เป็นเครื่องมือที่มีประโยชน์สำหรับการจำลองความหน่วงเครือข่าย และอาจช่วยในการทดสอบและปรับแต่งประสิทธิภาพของแอปพลิเคชันที่ทำงานบนเครือข่ายได้
- เนื่องจากเขียนด้วยภาษา Go จึงคุ้นเคยสำหรับนักพัฒนา Go และมีความสามารถในการจำลองรูปแบบความหน่วงที่หลากหลายได้อย่างง่ายดาย
- เป็นโอเพนซอร์สและใช้สัญญาอนุญาต Apache 2.0 จึงมีโอกาสได้รับการพัฒนาอย่างต่อเนื่องผ่านการมีส่วนร่วมจากชุมชน
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
tcเพื่อเพิ่มความหน่วงให้กับอินเทอร์เฟซที่กำหนด ซึ่งทำงานได้ดีกับ Docker container ด้วย และอาจมีติดตั้งอยู่แล้วในหลายระบบtc qdisc add dev eth0 root netem delay 100ms