web-dev-qa-db-ja.com

iperfはネットワークパフォーマンスの測定に有効ですか?

アプリケーションサーバー(Windows)とRedisインスタンス(Linux)間のソフトウェア展開の1つでパフォーマンスの問題を調査しています。

10ギガビット/秒のリンクでは、単一のTCP接続は明らかに10メガビット/秒にしか到達できません。複数のTCP接続を開くと、より高い帯域幅に到達できます。UDPこれらの制限の影響を受けていないようで、リンクのフルスピードに達します。この種のことから、ネットワーク内の一部のネットワークデバイス(ファイアウォール、プロキシ?)がこれらのスループットの違いを引き起こしていると思われます。

これらの測定は、WindowsサーバーとLinuxサーバーの両方でiperf(同じバージョン)を使用して行いました。

しかし、私たちのネットワーキングチームは、「iperfはWindowsで公式にサポートされていないため、結果を信頼できない」という事実に基づいて、これらの結果を完全に破棄します。同時に、彼らはそれらの測定を行うための代替ツールを提供することを否定し、「ネットワークは正常である」と主張します。

だから私の質問は:iperfを確実に使用してTCPおよびWindowsサーバーとLinuxサーバー間のUDPパフォーマンスを測定できるか?いいえの場合、どのツールをお勧めしますか?

1
ereOn

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

どこ:

  • 「PXX」は並列フローの数を表します
  • 上記のサーバーIPを「$ 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を使用します。これは通常、(ほぼ)すべての人のジョブのデフォルトツールです。

3
Leo

iperfを使用できますが、10Mbpsが報告されたときにどのパラメーターを使用していたのでしょうか。

もう1つの便利なツールはNetpipe(Linuxリポジトリで利用可能)です。Windowsの場合、Javaバージョン、利用可能 ここ

Netpipeの実行方法に関する情報は ここ 利用可能です。

Redisへのアクセスに関する問題の特定をお手伝いします。どのネットワークベンダーを使用していますか?

0
Guillermo Lopez