仮想マシンのネットワーク帯域幅

Azure が提供する VM にはさまざまなサイズと種類があり、それぞれが異なるパフォーマンス機能の組み合わせを備えています。 機能の 1 つがネットワーク スループット (帯域幅) で、メガビット/秒 (Mbps) で測定されます。 仮想マシンは共有ハードウェアでホストされているため、同じハードウェアを共有する仮想マシン間でネットワーク容量が公平に分配される必要があります。 大きな仮想マシンには、小さい仮想マシンよりも相対的に多くの帯域幅が割り当てられます。

各仮想マシンに割り当てられたネットワーク帯域幅は、仮想マシンからのエグレス (送信) トラフィックで測定されます。 仮想マシンから送信されるすべてのネットワーク トラフィックは、送信先に関係なく、割り当てられた制限に達するまでカウントされます。 たとえば、ある仮想マシンの制限が 1,000 Mbps である場合、送信トラフィックの送信先が同じ仮想ネットワーク内の仮想マシンであっても Azure 外部であっても、この制限が適用されます。

イングレスは、直接測定または制限されません。 ただし、仮想マシンで受信データを処理する能力に影響する可能性がある、CPU や記憶域の制限などの他の要因もあります。

高速ネットワークは、ネットワーク パフォーマンス (待ち時間、スループット、CPU 使用率など) の向上を目的として設計された機能です。 高速ネットワークは仮想マシンのスループットを向上させますが、向上できるのは仮想マシンに割り当てられた帯域幅までです。 高速ネットワークの詳細については、Windows または Linux 仮想マシンの高速ネットワークに関する記事を参照してください。

Azure の仮想マシンには、少なくとも 1 つ (複数可) のネットワーク インターフェイスが接続されている必要があります。 仮想マシンに割り当てられる帯域幅は、仮想マシンに接続されているすべてのネットワーク インターフェイス全体の送信トラフィックの合計です。 つまり、帯域幅は仮想マシンごとに割り当てられており、仮想マシンに接続されているネットワーク インターフェイスの数は関係ありません。 さまざまな Azure VM サイズがサポートするネットワーク インターフェイスの数については、WindowsLinux の Azure VM サイズに関するページを参照してください。

想定されるネットワーク スループット

VM の各サイズで想定される送信スループットとサポートされるネットワーク インターフェイスの数については、WindowsLinux の Azure VM サイズに関するページを参照してください。 型 (汎用など) を選択し、その結果として表示されるページでサイズとシリーズ (Dv2 シリーズなど) を選択します。 各シリーズの表の最後の列にはネットワーク仕様が示されており、そのタイトルは

最大 NIC 数/想定ネットワーク パフォーマンス (Mbps) です。

このスループット制限が仮想マシンに適用されます。 スループットは、次の要因には影響されません。

  • ネットワーク インターフェイスの数: 帯域幅の制限は、仮想マシンからのすべての送信トラフィックの累積です。

  • 高速ネットワーク: この機能は公開されている制限までの達成には役立ちますが、制限を変更することはありません。

  • トラフィックの送信先: すべての送信先が、送信制限に達するまでカウントされます。

  • プロトコル: すべてのプロトコルに対するすべての送信トラフィックが、制限に達するまでカウントされます。

ネットワーク フローの制限

帯域幅に加えて、特定の時点で VM 上に存在するネットワーク接続の数がそのネットワーク パフォーマンスに影響を与える場合があります。 Azure のネットワーク スタックは、TCP/UDP 接続の各方向の状態を 'フロー' と呼ばれるデータ構造の中に保持します。 一般的な TCP/UDP 接続では、2 つのフローが作成されます。1 つは受信、もう 1 つは送信方向用です。 各フローは 5 組 (プロトコル、ローカル IP アドレス、リモート IP アドレス、ローカル ポート、リモート ポート) の情報によって識別されます。

エンドポイント間のデータ転送では、データ転送を実行するフローに加えていくつかのフローを作成する必要があります。 その例として、DNS 解決のために作成されるフローや、ロード バランサーの正常性プローブのために作成されるフローがあります。 ゲートウェイ、プロキシ、ファイアウォールなどのネットワーク仮想アプライアンス (NVA) では、アプライアンスが終点の接続およびアプライアンスが始点の接続に対して作成されたフローが表示されます。

転送アプライアンスを経由した TCP 通信のフロー数のスクリーンショット。

フローの制限とアクティブ接続に関する推奨事項

現在、Azure のネットワーク スタックでは、1 つの VM について合計 100 万個のフロー (50 万個の受信と 50 万個の送信) がサポートされています。 さまざまなシナリオで VM によって処理されるアクティブ接続の合計数は以下のとおりです。

  • 仮想ネットワークに属している VM では、すべての VM サイズについて 50 万個の "アクティブ接続" を処理できます。"各方向のアクティブ フロー数" は 50 万個です。

  • ゲートウェイ、プロキシ、ファイアウォールなどのネットワーク仮想アプライアンス (NVA) を使用している VM では、上の図に示されているように、ネクスト ホップへの新しい接続のセットアップ時に転送と追加の新しいフローが作成されるため、25 万個の "アクティブ接続" を処理できます。"各方向のアクティブ フロー数" は 50 万個です。

この制限に達すると、その他の接続は切断されます。 接続の確立と終了はパケット処理ルーチンと CPU を共有するため、接続の確立と終了の頻度もネットワーク パフォーマンスに影響を与える場合があります。 予測されるトラフィック パターンに対してワークロードをベンチマークし、パフォーマンスのニーズを満たすようにワークロードを適切にスケールアウトすることをお勧めします。

Azure Monitor では、VM または Virtual Machine Scale Sets インスタンス上のネットワーク フロー数やフロー作成頻度を追跡するためのメトリックを使用できます。

折れ線グラフと、受信および送信フローの合計が表示されている Azure Monitor の [メトリック] ページを示すスクリーンショット。

次のステップ