NTTTCP を使用して VM ネットワーク スループットをテストする
この記事では、Microsoft が提供する無料の NTTTCP ツールを使用して、Azure Windows または Linux 仮想マシン (VM) のネットワーク帯域幅とスループット パフォーマンスをテストする方法について説明します。 NTTTCP のようなツールは、ネットワークをテストの対象にしており、パフォーマンスに影響を与える可能性のある他のリソースの使用を最小限に抑えます。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Azure 内の 2 つの Windows または Linux 仮想マシン。 Windows VM を作成するか Linux VM を作成します。
Note
仮想 IP を使用したテストは可能ですが、この記事の範囲外です。
この記事で使用されている例
設定 | 値 |
---|---|
受信側 VM の IP アドレス | 10.0.0.5 |
VM コアの数 | 2 |
Windows VM または Linux VM でスループットをテストする
Windows VM から NTTTCP を使用して、または Linux VM から NTTTCP-for-Linux を使用してスループットをテストできます。
VM を準備して NTTTCP-for-Windows をインストールする
送信側と受信側の両方の VM で、最新バージョンの NTTTCP を c:\tools などの別フォルダーにダウンロードします。
Windows コマンド ラインを開き、ntttcp.exe をダウンロードしたフォルダーに移動します。
受信側 VM で、NTTTCP トラフィックの到着を許可する Windows ファイアウォール
allow
規則を作成します。 特定の受信 TCP ポートを許可するよりも、名前で ntttcp.exe を許可する方が簡単です。 次のコマンドを実行します。その際、c:\tools
は実際の ntttcp.exe のダウンロード パスに置き換えてください (異なる場合)。netsh advfirewall firewall add rule program=c:\tools\ntttcp.exe name="ntttcp" protocol=any dir=in action=allow enable=yes profile=ANY
構成を確認するには、次のコマンドを使用して、受信側と送信側の仮想マシンで 1 つの転送制御プロトコル (TCP) ストリームを 10 秒間テストします。
受信側 VM
ntttcp -r -m [<number of VM cores> x 2],*,<receiver IP address> -t 10 -P 1
ntttcp -r -m 4,*,10.0.0.5 -t 10 -P 1
送信側 VM
ntttcp -s -m [<number of VM cores> x 2],*,<receiver IP address> -t 10 -P 1
ntttcp -s -m 4,*,10.0.0.5 -t 10 -P 1
Note
上記のコマンドは、構成をテストする場合にのみ使用します。
ヒント
初めてテストを実行して設定を確認する場合は、すぐにフィードバックを得られるように短いテスト時間を使用してください。 ツールが正常に動作していることを確認したら、最大限正確な結果を得るために、テスト時間を 300 秒に延長します。
スループット テストを実行する
送信側と受信側の両方の VM で、300 秒間 (5 分間) テストを実行します。 送信側と受信側で、-t
パラメーターに同じテスト時間を指定する必要があります。
受信側 VM で次のコマンドを実行します。その際、
<number of VM cores>
および<receiver IP address>
プレースホルダーは実際の値に置き換えてください。ntttcp -r -m [<number of VM cores> x 2],*,<receiver IP address> -t 300
ntttcp -r -m 4,*,10.0.0.5 -t 300
送信側 VM で次のコマンドを実行します。 送信側と受信側のコマンドの違いは、送信側または受信側の VM を指定する
-s
または-r
パラメーターのみです。ntttcp -s -m [<number of VM cores> x 2],*,<receiver IP address> -t 300
ntttcp -s -m 4,*,10.0.0.5 -t 300
結果を待ちます。
テストが完了すると、出力は次の例のようになります。
C:\tools>ntttcp -s -m 4,*,10.0.0.5 -t 300
Copyright Version 5.39
Network activity progressing...
Thread Time(s) Throughput(KB/s) Avg B / Compl
====== ======= ================ =============
0 300.006 29617.328 65536.000
1 300.006 29267.468 65536.000
2 300.006 28978.834 65536.000
3 300.006 29016.806 65536.000
##### Totals: #####
Bytes(MEG) realtime(s) Avg Frame Size Throughput(MB/s)
================ =========== ============== ================
34243.000000 300.005 1417.829 114.141
Throughput(Buffers/s) Cycles/Byte Buffers
===================== =========== =============
1826.262 7.036 547888.000
DPCs(count/s) Pkts(num/DPC) Intr(count/s) Pkts(num/intr)
============= ============= =============== ==============
4218.744 1.708 6055.769 1.190
Packets Sent Packets Received Retransmits Errors Avg. CPU %
============ ================ =========== ====== ==========
25324915 2161992 60412 0 15.075
Windows VM と Linux VM の間のスループットをテストする
Windows VM と Linux VM の間で NTTTCP スループット テストを実行するには、Windows の -ns
フラグまたは Linux の -N
フラグを使用して同期なしモードを有効にします。
受信側として Windows VM でテストするには、次のコマンドを実行します。
ntttcp -r -m [<number of VM cores> x 2],*,<Linux VM IP address> -t 300
送信側として Windows VM でテストするには、次のコマンドを実行します。
ntttcp -s -m [<number of VM cores> x 2],*,<Linux VM IP address> -ns -t 300