質問

ペイロードが 1470 未満の UDP パケットの場合、1G ビットのスループットを達成することは可能ですか?パケット サイズが小さいため、このようなスループットを達成するにはいくつかのボトルネック (I/O、OS、ネットワークなど) が存在するはずです。ドライバーとハードウェアは、小さなパケット/高スループットに合わせて調整する必要があるかもしれないと想像しています。小さな UDP パケットで 1G ビットのスループットを達成しようとした人はいますか?

役に立ちましたか?

解決

私は以前、比較的標準的な PC ハードウェアでギガビット リンクのスループットを実験しましたが、送信だけを行っていました ( tcpreplay)、udp ではなく。

私が発見した最大のボトルネックは、NIC 自体にパケットを送信することだけでした。これは、高速バスを使用して NIC に接続することで大幅に改善できます (例:4x pci-express NIC)。しかし、これであっても、非常に明確なパケット/秒制限がありました。明らかに、パケット サイズを増やすと、プロセッサの負荷を軽減しながら、より多くの帯域幅を利用できるようになります。

さんのコメントと同じような流れで、 スティーブ・モイヤー, 、どのネットワークの使用にも理論上の制限があります。私の実験 (完全に静かなネットワーク上で行われました) では、最大約 900Mb/s (記憶の範囲内ですが) が発生しました。これは CPU 負荷が 30 ~ 40% の場合でした。

この制限は、システム ハードウェアによって課される可能性が高くなります。PC) は、ネットワーク インフラストラクチャよりも優れています。その価値のあるネットワーク スイッチは、小さなパケットでフルスピードのネットワーク アクセスを維持できるはずです。確かに、ほとんどの PC が対応できる速度よりもはるかに高い速度です。

他のヒント

どのような種類のネットワーク接続を使用していますか?1000BaseTx/Fx リンクを使用している場合は、最大サイズのパケットで 80% を超えるスループットを期待しないでください。パケット サイズが小さくなると、スペース、同期、イーサネット ヘッダー、IP ヘッダー、UDP ヘッダーのオーバーヘッドがペイロードに関連して増加するため、最大スループットはさらに低下します。

使用しているスイッチのマニュアルを確認してください。スイッチは配信できる 1 秒あたりのパケット数 (pps) に制限があり、最大ペイロード サイズより大幅に小さいパケットを送信する場合は 1 GBps を維持できないことがよくあります。

もう 1 つ確認すべき点は、ネットワーク カードが割り込み合体を行っているかどうか、およびネットワーク カードがサポートできる送受信記述子の最大数はいくらかということです。このレベルのスループットでは、最新の CPU とメモリ システムを使用している場合でも、割り込みサービス時間とコンテキスト切り替え時間がホスト システムで大きなオーバーヘッドになる可能性があります。

また、銅線経由でギガビットを使用している場合、カードが発行する最小のイーサネット フレームは 512 バイトであるため、より小さいメッセージはそのサイズに詰め込まれます。これは、キャリアセンス/衝突検出の要件のためです。

ハードウェアの 1 秒あたりのパケット制限が、ネットワークの理論上の容量よりも大幅に低いことがわかりました。Broadcomm BCM5704S の場合、ギガビットの 1,488,100 pps と比較して、69,000 pps でこれに達しました。

ここで報告したさらにいくつかの数字、 http://code.google.com/p/openpgm/

真のギガビット速度を実現するために (Linux で) ネットワーク設定を調整するための優れたチュートリアルがここにあります。 http://datatag.web.cern.ch/datatag/howto/tcp.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top