Speedbump - 可変レイテンシをサポートするTCPプロキシ
(github.com/kffl)- Go言語で書かれたTCPプロキシで、さまざまな可変ネットワーク遅延時間をシミュレーション可能
基本的な使用例
- ポート2000で待ち受ける新しいインスタンスを作成し、TCPトラフィックを localhost:80 にプロキシし、基本遅延時間は100ms、サイン波の振幅は100ms(追加遅延の最大値200ms、最小値0)、周期は1分:
speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80 - または、kffl/speedbump コンテナイメージを使って 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 は
libパッケージを通じてGoライブラリとして使用可能。
GN⁺の意見:
- Speedbump はネットワーク遅延時間のシミュレーションに役立つツールで、ネットワークベースのアプリケーションの性能をテストして最適化するのに役立つ可能性がある。
- Go言語で書かれているためGo開発者にとって親しみやすく、さまざまな遅延時間パターンを簡単にシミュレーションできる機能を提供する。
- オープンソースであり Apache 2.0 ライセンスに従うため、コミュニティの貢献を通じて継続的に改善される可能性がある。
1件のコメント
Hacker News のコメント
tcコマンドを使って特定のインターフェースに遅延を追加する方法を学び、これは Docker コンテナでもうまく動作する。すでに多くのシステムにインストールされている可能性がある。tc qdisc add dev eth0 root netem delay 100ms