アプリケーションサーバー(Windows)とRedisインスタンス(Linux)間のソフトウェア展開の1つでパフォーマンスの問題を調査しています。
10ギガビット/秒のリンクでは、単一のTCP接続は明らかに10メガビット/秒にしか到達できません。複数のTCP接続を開くと、より高い帯域幅に到達できます。UDPこれらの制限の影響を受けていないようで、リンクのフルスピードに達します。この種のことから、ネットワーク内の一部のネットワークデバイス(ファイアウォール、プロキシ?)がこれらのスループットの違いを引き起こしていると思われます。
これらの測定は、WindowsサーバーとLinuxサーバーの両方でiperf
(同じバージョン)を使用して行いました。
しかし、私たちのネットワーキングチームは、「iperfはWindowsで公式にサポートされていないため、結果を信頼できない」という事実に基づいて、これらの結果を完全に破棄します。同時に、彼らはそれらの測定を行うための代替ツールを提供することを否定し、「ネットワークは正常である」と主張します。
だから私の質問は:iperf
を確実に使用してTCPおよびWindowsサーバーとLinuxサーバー間のUDPパフォーマンスを測定できるか?いいえの場合、どのツールをお勧めしますか?
iperf は、少なくとも2005年以降、Windowsで完全にサポートされています。現在では、さまざまなバージョンがあります Windowsのiperf :32ビット、64ビット、さらにはUWPバージョンも利用できます。 。
クライアントとサーバーの両方で同じバージョンのiperf3(およびバージョンによってはv3.1.3などのビルドを意味します)を入手したら、次のようにして10gbpsをテストできます。
iperf3 -s
次のような出力が表示されます。
------------------------
Server listening on 5201
------------------------
iperf3 -P XX -c $server_ip
どこ:
これにより、次の行に沿って何かが出力されます。
[SUM] 0.00-10.00 sec 10.9 GBytes 9.30 Gbits/sec sender
[SUM] 0.00-10.00 sec 10.8 GBytes 9.28 Gbits/sec receiver
それがうまくいかない場合は、TCPウィンドウサイズを試してみてください。クライアント側から-w XXu
フラグを使用して変更できます。ここで[〜#〜] xx [〜#〜]はサイズで、u単位(k、m)。
ネットワーク帯域幅をテストする別の方法は、一方の端からhttpファイルを提供し、並列ストリームを許可するある種のダウンロードツール(wget、filezilla、またはほぼすべてのダウンロードマネージャー)を使用することです。または、ベンチマークツールを実行しますが、私はiperfを使用します。これは通常、(ほぼ)すべての人のジョブのデフォルトツールです。