Linuxでの着信および発信の帯域幅と遅延を制限する


15

私は多くの同様の質問がすでに聞かれていることを知っていますが、これまでのところ、私の問題の解決策を見つけていません。

ウェブサイトの読み込み時間の増減を測定するためにウェブサイトの速度のテストに使用する仮想Linuxサーバー(Debian Squeezeを実行)があります。私は、このサーバーの帯域幅と待ち時間を制限して、Webサイトの実際のロード時間に近づけることを試みていますが、これまでのところ失敗しています。

特に欲しいのは次のとおりです。

  • 着信および発信のレイテンシを50ミリ秒に設定します。
  • 512 kbpsの着信帯域幅制限を設定します。
  • 4096 kbpsの発信帯域幅制限を設定します。

私はnetemを読んでtcコマンドを使用していますが、それでもまだ頭に残っています。私はこのコマンドをまとめてうまくいくように見えるレイテンシを制御することができましたが、それが発信レイテンシだけを処理するのか、それとも両方を処理するのかさえわかりません:

tc qdisc add dev eth0 root netem delay 50ms

その周りのネットワークの達人は私を助けることができますか?

編集:

さらなる調査の後、私は目標の半分に到達しました。このコマンドを使用すると、すべての発信トラフィックが希望どおりに動作します。

tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000

ただし、着信トラフィックを適切に調整することができませんでした。「イングレスポリサーフィルター」を使用することになっていることを学びました。以下のコマンドを使用して、異なる値で遊んでみましたが、運はありませんでした。

tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match ip src 0.0.0.0/0 flowid :1 police rate 1.0mbit mtu 10000 burst 10k drop

帯域幅はコマンドの影響を受けますが、上記の値は速度を2MB / sから開始し、転送が進むにつれて、約30秒の転送後に到達する約80-90kB / sにゆっくりと低下します。

私が間違っていることに関するアイデアはありますか?


netem delay 50msレイテンシを制限しません。50msそうでない場合に比べて、レイテンシーが増加します。
カスペルド14

確かにあなたは正しい。私が実際に探していた
50ミリ秒の

回答:


12

私は最終的に、サーバー上で発信帯域幅/待機時間を設定し、その後クライアント上で同じことを実行して、事実上同じ結果に到達することに決めました。

これらは、目標を達成するためにそれぞれサーバーとクライアントで実行したコマンドです。

サーバー:4 Mbit 50 ms

tc qdisc add dev eth0 handle 1: root htb default 11
tc class add dev eth0 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 4Mbit
tc qdisc add dev eth0 parent 1:11 handle 10: netem delay 50ms

クライアント:512 kbit 50 ms

tc qdisc add dev vmnet1 handle 1: root htb default 11
tc class add dev vmnet1 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev vmnet1 parent 1:1 classid 1:11 htb rate 512kbit
tc qdisc add dev vmnet1 parent 1:11 handle 10: netem delay 50ms

私はこれを何ヶ月も探していました。ありがとう。一つの質問?ルールを削除するにはどうすればよいですか?tcクラスdel dev eth0ルートはRTNETLINKの答えを示しています:そのようなファイルまたはディレクトリはありません
Nur

それは数ヶ月前でしたが、qdiscを削除するのに十分であることを覚えているようです:tc qdisc del dev eth0ルート
yzfr1 14年

2

約80-90 kByte / sは、何に期待するかについてです

    tc filter add ... police rate 1.0mbit ...

着信データが1 mBit / sに到達すると破棄されるように要求します。これは約125 kByte / sです。リモートサーバーは、それよりもかなり低くなります(おそらく半分、不明)。その後、すべてのパケットが通過するため、リモートエンドは125 kByte / sに再び達するまでゆっくりと速度を上げます。125 kByte / sを大幅に下回る平均スループットが得られます。これは、イングレスシェーピングの典型です。

イングレスポリシーフィルターが既に設定されている場合、速度が2 MByte / sに達するはずであることに少し驚いています。どこで測定しましたか-ダウンストリームクライアント(プログラム)またはアップストリームルーターで?または、最初に接続を開始し、その後にのみ、イングレスポリシーフィルターを開始しましたか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.