web-dev-qa-db-ja.com

ギガビットは本当にギガビット?

ギビットニックス(サーバーグレードインテル)とクロスケーブル付きの2つのボックスを使用する場合...使用されているパイプの%20-40しか表示されません。ルーター間でも。

同じ取引で2枚の100mbpsカードを入れます。 %20-40使用。

何が得られますか?

5
Chad Grant

クロスケーブル付きの2枚のカード:

どのようにテストしていますか?どのように測定していますか? 20〜40%と言うときは、各インスタンスでの意味と、その数値をどのように取得しているかを正確に教えてください。

イーサネットのオーバーヘッドはパケットあたり約38バイトであり、TCP/IPのオーバーヘッドは約52バイトです。イーサネット経由でTCP/IPを実行している1500バイトのパケットでは、94%の可能なデータスループットが見られます。

ただし、送信アプリケーションは、より小さなデータチャンクを送信している可能性があります。 UDPを使用します(ビデオストリーミング、音声などに使用されます)。パケットあたり256バイトと90バイトのオーバーヘッドを送信する場合、74%の使用率が得られます。

次に、OSとTCP/IPスタックのオーバーヘッドがあります-どちらも遅延を追加します。これは、TCP/IPがネットワークの負荷を管理する方法のために、複雑な方法で帯域幅に影響を与えます(アルゴリズムは損失することなく最大帯域幅を使用しようとしますパケット)。

次に、コンピュータに他の負荷があります。低速のハードドライブから断片化されたデータをコピーしている場合は、ネットワークのボトルネックはまったく見られないかもしれませんが、PCの他の場所に別のボトルネックが見られる可能性があります。

100base-T NICもサーバーグレードですか? NICで実行する必要のある処理をOSにオフロードしないと確信していますか?

NICはどのバスにありますか? PCI、PCIeなど?そのバスには他に何がありますか? NICは他のデバイスとIRQを共有していますか?

マザーボードとNIC(該当する場合))に最新のBIOSを使用していましたか?最新のドライバーですか?

OSはサーバーOSですか、それともデスクトップですか(スケジューラー、スタックなどは、パフォーマンスシナリオごとに異なる構成になっています)?

希望するスループットが得られない理由はたくさんあります。あなたが上で尋ねている単純な質問は、本当の問題がどこにあるかを知るのに十分な情報を提供しません。

通常のネットワークでは、衝突やその他のネットワークトラフィックが原因である可能性があります

イーサネットはその機能に優れていますが、同期されていません。これは、2枚のカードが同時に送信を開始できることを意味し、衝突を引き起こします。

衝突は通常、両方のカードによって検出され、再送信を試みる前に、両方ともランダムな期間バックオフします。

これは、イーサネットパケットとエンコーディングのオーバーヘッドと相まって、最良の状況下でも、80〜90%を超える使用率を実際に期待することはできないことを意味します。

コンピュータ間のハブではなくルーターとスイッチを使用することでこれを軽減できますが、データが多すぎるとルーターとスイッチでさえパケットをドロップし、合計使用率を数パーセントしか改善できません。

イーサネットパケット自体には、クロッキング、アドレス指定などのオーバーヘッドが含まれています。ネットワークで大きなパケットを有効にすると、パケットのオーバーヘッドがデータサイズに比べて小さくなるため、大規模な転送の場合、使用率を高めることができます。ただし、ビデオやオーディオストリーミングアプリケーションのように、アプリケーションで多数の小さなパケットが必要な場合、これは役に立ちません。大きなパケットを有効にしても、アプリケーションが送信しているのは小さなパケットだけである可能性があります。

-アダム

12
Adam Davis

私の推測では、それはあなたのテスト方法論の限界だと思います。たとえば、2つのシステム間でファイルを転送してテストする場合、ファイルシステムのパフォーマンスが制限要因になる可能性があります。また、使用しているプロトコルなどのオーバーヘッドも考慮する必要があります。もちろん、イーサネットとIPには固有のオーバーヘッドがあるため、100%の使用率が見られる可能性はほとんどありません。

スループットをテストするために設計されたiperf( http://en.wikipedia.org/wiki/Iperf )のようなツールを使用することをお勧めします。 Jperfと呼ばれるiperf用のGUIもありますが、基本的なiperfコマンドラインを理解するのは難しくありません...とにかくそれを使用する必要がある頻度はどれくらいですか?

ところで。一部のコメント提供者が示唆しているように、衝突に関連するのはnotではありません。全二重イーサネットでは衝突は発生せず、半二重ギガビットイーサネットのようなものはありません。 :-)テストに使用している2台のPCに本当に悪いイーサネットカードまたは本当にローエンドのCPUがない限り、ジャンボフレームの必要性とは何の関係もないでしょう。ジャンボフレームは、ギガビットイーサネットを完全に利用するために[〜#〜]必要ありません[〜#〜]ですが、高帯域幅転送中のCPU使用率を下げることができます。 。残念ながら、それは解決するよりも多くの問題を引き起こす可能性があり、私は間違いなく[〜#〜] not [〜#〜]あなたが完全でない限りそれを有効にすることをお勧めしますあなたがしていることを確認してください。

6
Bob McCormick

リンクをテストするために何を使用していますか?

メモリからデータをプッシュするだけの場合は、100Mbpsリンクとほとんどの1Gbpsリンクを飽和させるのは非常に簡単です。

ただし、ディスクからデータを読み取って他のシステムに転送しようとすると、ディスクのパフォーマンスに制約されます。

3
Alnitak

ネットワークスループットをテストするときは、ディスクI/OやCPUの制限などの変数をできるだけ多く削除するのが最善です。これが私が使用する手順です。これは、ネットワークでこれまでに見られる典型的な最大値を示すことができます。

ツール:

これらのユーティリティは両方とも、プリインストールされているか、パッケージを介して、またはソースからコンパイルできる、最新の* nixシステムで利用できるはずです。

手順:

  1. 1台のコンピューターで次のコマンドを実行して、UDPリスナーをセットアップします。 (UDPを使用すると、TCP転送のオーバーヘッドがないため、パフォーマンスの数値が高くなります。)

    nc -ulp 5000 > /dev/null

  2. もう一方のマシンで、リスナーのIPアドレスを使用して次のコマンドを実行し、ネットワークを介してゼロのストリームをncリスナーに送信します。 pvユーティリティは、レシーバーによって追跡された現在のパフォーマンスを表示します。

    pv < /dev/zero | nc -u listener-ip-address 5000

注:

  • ギガビットイーサネット接続の理論上の最大値は119MB /秒です(注意、M[〜#〜] b [〜#〜]、Mb
  • TCPは、両方のncコマンドで-uを削除してテストすることもできます。
  • 実際のアプリケーションでは、PV出力に示されているパフォーマンスの数値に達することはありません。

この方法は、適切に機能する機器を備えた適切に設計されたネットワークで予測可能な結果を​​もたらします。そのため、ネットワーク自体またはネットワーク機器が知覚される「速度低下」の原因であるかどうかを検出するのに役立つ優れたツールです。

2
Dave K

NICは半二重ではなく全二重として構成されていますか?

2
Vagnerr

ギガビットイーサネットのフルスループットを使用する場合は、ジャンボフレームがネットワーク全体、または少なくともパフォーマンスを測定しているすべてのマシンとスイッチで構成されていることを確認する必要があります。

ただし、1台のハードドライブの最大転送速度は通常30〜40メガバイト/秒であり、ギガビット/秒に近くないことに注意してください。

1
Eddie

100mとギガビットのネットワーク共有間でファイルをコピーするだけで80%から90%の使用率を得ることができました

1
Dani

アダムと全二重の人は正しいです。また、基盤となるハードウェアが1Gbps/100Mbpsを飽和させるタスクにも対応していない可能性があることを忘れないでください。適切なRAID構成、適切なSSD、または何らかのRAMベースのドライブがない限り、これらの種類の転送速度は長期間表示されない可能性があります。

0
travis

銅線GigEリンクで約50%を超える使用率を確認したことはありませんが、ファイバーを介したCiscoスイッチ間の飽和トランクポートで90%を超える使用率を確認しました。

0
Chopper3