帯域幅/スループットのテスト (NTTTCP)Bandwidth/Throughput testing (NTTTCP)

ネットワーク スループットのパフォーマンスを Azure でテストするための最善の方法は、テストするネットワークをターゲットとするツールを使用して、パフォーマンスに影響する可能性があるその他のリソースの使用を最小限に抑えることです。When testing network throughput performance in Azure, it's best to use a tool that targets the network for testing and minimizes the use of other resources that could impact performance. NTTTCP を使用することをお勧めします。NTTTCP is recommended.

このツールを、同じサイズの 2 つの Azure VM にコピーします。Copy the tool to two Azure VMs of the same size. 片方の VM は送信側として、他方は受信側として機能します。One VM functions as SENDER and the other as RECEIVER.

テスト用の VM のデプロイDeploying VMs for testing

このテストの目的を達成するには、2 つの VM が同じクラウド サービス内にあるか同じ可用性セット内に含まれている必要があります。これは、内部 IP アドレスの使用と、ロード バランサーのテストからの除外を行えるようにするためです。For the purposes of this test, the two VMs should be in either the same Cloud Service or the same Availability Set so that we can use their internal IPs and exclude the Load Balancers from the test. VIP を使用してテストすることは可能ですが、この種類のテストはこのドキュメントの範囲外です。It is possible to test with the VIP but this kind of testing is outside the scope of this document.

受信側の IP アドレスをメモしておきます。Make a note of the RECEIVER's IP address. その IP を "a.b.c.r" と呼びましょう。Let's call that IP "a.b.c.r"

VM 上のコアの数をメモしておきます。Make a note of the number of cores on the VM. これを "#num_cores" と呼びましょう。 Let's call this "#num_cores" 送信側 VM と 受信側 VM で、NTTTCP テストを 300 秒間 (5 分間) 実行します。Run the NTTTCP test for 300 seconds (or 5 minutes) on the sender VM and receiver VM.

ヒント: このテストを初めて設定するときは、フィードバックをすぐに取得するために、もっと短い時間でテストを実行できます。Tip: When setting up this test for the first time, you might try a shorter test period to get feedback sooner. ツールが想定どおりに動作したら、最も正確な結果を得るために、テスト時間を 300 秒に延長します。Once the tool is working as expected, extend the test period to 300 seconds for the most accurate results.

注意

送信側と受信側には、同じテスト時間パラメーター (-t) を指定する必要があります。The sender and receiver must specify the same test duration parameter (-t).

1 つの TCP ストリームを10 秒間テストするには:To test a single TCP stream for 10 seconds:

受信側パラメーター: ntttcp -r -t 10 -P 1Receiver parameters: ntttcp -r -t 10 -P 1

送信側パラメーター: ntttcp -s10.27.33.7 -t 10 -n 1 -P 1Sender parameters: ntttcp -s10.27.33.7 -t 10 -n 1 -P 1

注意

上記のサンプルは、構成を確認する場合にのみ使用する必要があります。The preceding sample should only be used to confirm your configuration. テストの有効な例については、このドキュメントの後半で説明します。Valid examples of testing are covered later in this document.

Windows を実行している VM のテスト:Testing VMs running WINDOWS:

VM 上に NTTTCP を取得するGet NTTTCP onto the VMs.

最新バージョンをダウンロードする: https://gallery.technet.microsoft.com/NTttcp-Version-528-Now-f8b12769Download the latest version: https://gallery.technet.microsoft.com/NTttcp-Version-528-Now-f8b12769

または移動済みの場合は検索する: https://www.bing.com/search?q=ntttcp+download< -- 最初に検出されるはずですOr search for it if moved: https://www.bing.com/search?q=ntttcp+download< -- should be first hit

NTTTCP は、独立したフォルダー (C:\tools など) に配置することを検討してください。Consider putting NTTTCP in separate folder, like c:\tools

NTTTCP が Windows ファイアウォールを通過することを許可するAllow NTTTCP through the Windows firewall

受信側で、Windows ファイアウォールの許可ルールを作成して、NTTTCP トラフィックの到着を許可します。On the RECEIVER, create an Allow rule on the Windows Firewall to allow the NTTTCP traffic to arrive. 特定の TCP ポートの受信を許可するのではなく、名前によって NTTTCP プログラム全体を許可するほうが簡単です。It's easiest to allow the entire NTTTCP program by name rather than to allow specific TCP ports inbound.

次のように、NTTTCP が Windows ファイアウォールを通過することを許可します。Allow ntttcp through the Windows Firewall like this:

netsh advfirewall firewall add rule program=<パス>\ntttcp.exe name="ntttcp" protocol=any dir=in action=allow enable=yes profile=ANYnetsh advfirewall firewall add rule program=<PATH>\ntttcp.exe name="ntttcp" protocol=any dir=in action=allow enable=yes profile=ANY

たとえば、ntttcp.exe を "c:\tools" フォルダーにコピーした場合、このコマンドは次のようになります。For example, if you copied ntttcp.exe to the "c:\tools" folder, this would be the command:

netsh advfirewall firewall add rule program=c:\tools\ntttcp.exe name="ntttcp" protocol=any dir=in action=allow enable=yes profile=ANYnetsh advfirewall firewall add rule program=c:\tools\ntttcp.exe name="ntttcp" protocol=any dir=in action=allow enable=yes profile=ANY

NTTTCP テストの実行Running NTTTCP tests

受信側で NTTTCP を開始します (PowerShell からではなく CMD から実行します)。Start NTTTCP on the RECEIVER (run from CMD, not from PowerShell):

ntttcp -r –m [2*#num_cores],*,a.b.c.r -t 300ntttcp -r –m [2*#num_cores],*,a.b.c.r -t 300

VM に 4 つのコアと IP アドレス 10.0.0.4 がある場合、コードは次のようになります。If the VM has four cores and an IP address of 10.0.0.4, it would look like this:

ntttcp -r –m 8,*,10.0.0.4 -t 300ntttcp -r –m 8,*,10.0.0.4 -t 300

送信側で NTTTCP を開始します (PowerShell からではなく CMD から実行します)。Start NTTTCP on the SENDER (run from CMD, not from PowerShell):

ntttcp -s –m 8,*,10.0.0.4 -t 300ntttcp -s –m 8,*,10.0.0.4 -t 300

結果を待ちます。Wait for the results.

LINUX を実行している VM のテスト:Testing VMs running LINUX:

nttcp-for-linux を使用します。Use nttcp-for-linux. これは https://github.com/Microsoft/ntttcp-for-linux 以降で使用可能です。It is available from https://github.com/Microsoft/ntttcp-for-linux

Linux VM (送信側と受信側の両方) で、次のコマンドを実行して、VM 上に ntttcp-for-linux を準備します。On the Linux VMs (both SENDER and RECEIVER), run these commands to prepare ntttcp-for-linux on your VMs:

CentOS - Install Git:CentOS - Install Git:

  yum install gcc -y  
  yum install git -y

Ubuntu - Install Git:Ubuntu - Install Git:

 apt-get -y install build-essential  
 apt-get -y install git

両方で作成とインストールを行います。Make and Install on both:

 git clone https://github.com/Microsoft/ntttcp-for-linux
 cd ntttcp-for-linux/src
 make && make install

Windows の例のように、Linux の受信側 IP は 10.0.0.4 とします。As in the Windows example, we assume the Linux RECEIVER's IP is 10.0.0.4

受信側で、NTTTCP-for-Linux を起動します。Start NTTTCP-for-Linux on the RECEIVER:

ntttcp -r -t 300

送信側で、次のコマンドを実行します。And on the SENDER, run:

ntttcp -s10.0.0.4 -t 300

時間パラメーターが指定されない場合、テストの長さは既定値の 60 秒になります。Test length defaults to 60 seconds if no time parameter is given

Windows と Linux を実行している VM 間でのテストTesting between VMs running Windows and LINUX:

このシナリオでは、テストを実行するために同期なしモードを有効にする必要があります。On this scenarios we should enable the no-sync mode so the test can run. 有効にするには、Linux では -N フラグを、Windows では -ns フラグを使用します。This is done by using the -N flag for Linux, and -ns flag for Windows.

Linux から Windows へ:From Linux to Windows:

受信者:Receiver :

ntttcp -r -m <2 x nr cores>,*,<Windows server IP>

送信者:Sender :

ntttcp -s -m <2 x nr cores>,*,<Windows server IP> -N -t 300

Windows から Linux へ:From Windows to Linux:

受信者:Receiver :

ntttcp -r -m <2 x nr cores>,*,<Linux server IP>

送信者:Sender :

ntttcp -s -m <2 x nr cores>,*,<Linux  server IP> -ns -t 300

クラウド サービスのインスタンスのテストTesting Cloud Service Instances:

次のセクションを ServiceDefinition.csdef に追加する必要があります。You need to add following section into your ServiceDefinition.csdef

<Endpoints>
  <InternalEndpoint name="Endpoint3" protocol="any" />
</Endpoints> 

次の手順Next steps