Azure VM 間のネットワーク待機時間をテストする

注意

この記事では、間もなくサポート終了 (EOL) 状態になる Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。

このアーティクルでは、一般公開されているツール Latte for Windows または SockPerf for Linux を使用して、Azure 仮想マシン (VM) 間のネットワーク待機時間をテストする方法について説明します。

最も正確な結果を得るには、タスク用に設計されたツールを使用して VM ネットワークの待機時間を測定し、アプリケーションの待機時間などの他の型の待機時間を除外する必要があります。 Latte と SockPerf は、伝送制御プロトコル (TCP) とユーザー データグラム プロトコル (UDP) トラフィックに焦点を当てることで、最も関連性の高いネットワーク待機時間の結果を提供します。 ほとんどのアプリケーションではこれらのプロトコルが使用され、このトラフィックはアプリケーションのパフォーマンスに最も大きな影響を及ぼします。

Ping などの他の一般的なネットワーク待機時間テスト ツールの多くは、TCP または UDP トラフィックを測定しません。 Ping などのツールでは、アプリケーションで使用されないインターネット制御メッセージ プロトコル (ICMP) が使用されます。 ICMP トラフィックはアプリケーション トラフィックとは異なる方法で処理でき、アプリケーションのパフォーマンスに直接影響を与えるわけではありません。 ICMP テスト結果は、TCP と UDP を使用するワークロードには直接適用されません。

Latte と SockPerf は、TCP または UDP ペイロードのデリバリー時間のみを測定します。 これらのツールでは、次の方法を使用して、2 台の物理コンピューターまたは仮想コンピューター間のネットワーク待機時間を測定します:

  1. 1 つを送信者として指定し、1 つを受信者として指定して、コンピューター間に双方向の通信チャネルを作成します。
  2. 双方向でパケットを送受信し、ラウンド トリップ時間 (RTT) を測定できます。

ネットワーク待機時間を最適化するためのヒントとベスト プラクティス

ネットワーク待機時間に合わせて VM を最適化するには、VM を作成するときに次のレコメンデーションを確認します:

ネットワーク待機時間をテストして分析するには、次のベスト プラクティスを使用します:

  1. ネットワーク VM のデプロイ、構成、最適化が完了したらすぐに、デプロイされた VM 間でベースライン ネットワーク待機時間の測定を行い、ベンチマークを確立します。

  2. 次のいずれかのコンポーネントを変更するネットワーク待機時間に及ぼす影響をテストします:

    • 構成の変更を含むオペレーティング システム (OS) またはネットワーク スタック ソフトウェア。
    • VM デプロイ方法 (可用性ゾーンまたは近接配置グループ (PPG) へのデプロイなど)。
    • 高速ネットワークやサイズ変更などの VM のプロパティ。
    • 仮想ネットワーク 構成(ルーティングやフィルターの変更など)。
  3. 制御された変更の前に、常に新しいテスト結果をベースラインまたは最新のテスト結果と比較します。

  4. 変更を観察またはデプロイするたびにテストを繰り返します。

Latte または SockPerf を使用して VM をテストする

Latte for Windows または SockPerf for Linux を使用してネットワーク待機時間をインストールしてテストするには、次のプロシージャに従います。

Latte をインストールして VM を構成する

  1. 最新バージョンのlatte.exe を両方の VM にダウンロードし、 c:\tools などの別のフォルダーにダウンロードします。

  2. 受信側 VM で、Latte トラフィックの着信を許可する Windows Defender ファイアウォールallow ルールを作成します。 特定の受信 TCP ポートを許可するよりも、名前で latte.exeプログラム を許可する方が簡単です。 コマンドで、プレースホルダーを <path>c:\tools\ など、ダウンロードした latte.exeパスに置き換えます。

    netsh advfirewall firewall add rule program=<path>latte.exe name="Latte" protocol=any dir=in action=allow enable=yes profile=ANY
    

VM で Latte を実行する

PowerShell からではなく、Windows コマンド ラインから latte.exe を実行します。

  1. 受信側 VM で次のコマンドを実行します。その際、<receiver IP address><port>および<iterations> プレースホルダーは実際の値に置き換えてください。

    latte -a <receiver IP address>:<port> -i <iterations>
    
    • 代表的な結果を返すには、65,000 前後のイテレーションが十分です。
    • 使用可能な任意のポート番号で構いません。

    次の例は、10.0.0.4のIP アドレスがある VM の場合のコマンドを示しています:

    latte -a 10.0.0.4:5005 -i 65100

  2. 送信側 VM で、受信側と同じコマンドを実行します。ただし、クライアントまたは送信者の VM を示すために -cを追加した場合を除きます。 再度プレースホルダー <receiver IP address><port>および<iterations> を実際の値に置き換えます。

    latte -c -a <receiver IP address>:<port> -i <iterations>
    

    次に例を示します。

    latte -c -a 10.0.0.4:5005 -i 65100

  3. 結果を待ちます。 VM 同士の距離によっては、テストの完了までに数分かかる場合があります。 長いテストを実行する前に、成功についてテストするために少数のイテレーションで開始することを検討してください。

次のステップ