私はiperfを使って2つの仮想マシン間で簡単な帯域幅テストを実行しています。私が得たTCPとUDPの帯域幅の読み取り値は非常に異なり、UDPの帯域幅はTCPよりはるかに低いです。
TCP:
root@i-sahmed-node2: ~ # iperf -c 10.160.24.123 ------------------------------------- ---------- クライアントは10.160.24.123、TCPポート5001に接続します。 TCPウィンドウサイズ:85.0KB(デフォルト) ------------------------------------- ---------- [3]ローカル10.160.24.170ポート48339が10.160.24.123ポート5001に接続されています。 [ID]インターバル伝送帯域幅 [3] 0.0~10.0秒 7.41GB 6.36GB/秒 root@i-sahmed-node2: ~ #
UDP:
root@i-sahmed-node2: ~ # iperf -c 10.160.24.123 -u -b 6g ------------------------------------- ---------- クライアントは10.160.24.123、UDPポート5001に接続されます。 1470バイトのデータグラムを送信 UDPバッファサイズ:208KB(デフォルト) ------------------------------------- ---------- [3]ローカル10.160.24.170ポート51922が10.160.24.123ポート5001に接続されています。 [ID]インターバル伝送帯域幅 [3] 0.0-10.0秒 962MB 807Mbits/秒 [3] 686548個のデータグラムが送信されました。 [3]サーバーレポート: [3] 0.0-10.0秒 630MB 528Mbits/秒 0.009ミリ秒 237368/686547 (35%) [3] 0.0-10.0秒 9個のデータグラムが順番に受信される root@i-sahmed-node2: ~ #
ほぼ毎回これを再現できます。仮想マシンで実行されているため、基本ハードウェアに直接アクセスできません。なぜこれが起こるのか知っている人がいますか?
ベストアンサー1
./iPerf
UDPモードでは各UDPパケットのパフォーマンスを追跡する必要がありますが、TCPモードでは唯一の対話は最終的な要約です。
800Mb/秒はゲストVMで見た制限に似ています。