高レイテンシをシミュレートする方法はありますか?


11

これは、帯域幅を制限する方法について非常に良い答えです。

今、帯域幅は私の主な関心事ではありません-待ち時間です。

アプリケーションサーバーとそのデータベースサーバーの間に数百キロを置くとどうなりますか?

すべてのIPパケットの予想される遅延をシミュレートする可能性を探しています。

回答:


14

これは、を使用して行うことができますnetem彼らのホームページから:

広域ネットワーク遅延のエミュレート

これは最も単純な例で、ローカルイーサネットから送信されるすべてのパケットに一定量の遅延を追加するだけです。

# tc qdisc add dev eth0 root netem delay 100ms

これで、ローカルネットワークでホストする簡単なpingテストでは、100ミリ秒の増加が示されます。遅延は、カーネルのクロック分解能(Hz)によって制限されます。ほとんどの2.4システムでは、システムクロックは100 Hzで動作するため、10 ms単位の遅延が可能です。2.6では、値は1000〜100 Hzの構成パラメーターです。

後の例では、qdiscをリロードせずにパラメーターを変更するだけです

実際の広域ネットワークは変動性を示すため、ランダムな変動を追加することが可能です。

# tc qdisc change dev eth0 root netem delay 100ms 10ms

これにより、追加される遅延は100±10 msになります。ネットワーク遅延の変動は純粋にランダムではないため、相関値もあることをエミュレートします。

# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%

これにより、追加された遅延は100±10 msになり、次のランダム要素は最後のものに25%依存します。これは真の統計的相関ではなく、概算です。

配信遅延

通常、ネットワークの遅延は均一ではありません。正規分布のようなものを使用して遅延の変動を説明するのがより一般的です。netemの分野では、テーブルを使用して不均一な分布を指定できます。

# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal

実際のテーブル(通常、パレート、パレートノーマル)は、iproute2コンパイルの一部として生成され、/ usr / lib / tcに配置されます。そのため、実験データに基づいて独自のディストリビューションを作成することも可能です。


3
すばらしい- tc現在のSLESおよびRHELシステムにも存在します。
Nils
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.