Azure VMにおける高速ネットワークの有効化

はじめに

AzureポータルからVMを作成する際、高速ネットワークのオプション設定がありますが、既存VMの設定を有効化する為にはPowershellでの操作が必要です。
とにかく手順だけ知りたいという方は「既存の VM で高速ネットワークを有効にする」という手順の部分だけ参照してください。
本記事では高速ネットワークが有効でないWindows VMの高速ネットワークオプションを有効にする方法とその効果測定について記載しています。

高速ネットワークの概要

高速ネットワークについてはこちらのドキュメントに詳細が記載されています。
Azure PowerShell を使用して高速ネットワークが有効な Windows VM を作成する
高速ネットワークの有効化は無料です。料金はかかりません。
高速ネットワークとは端的にいうと、「仮想スイッチでの処理を無くして早くする」という仕組みです。
高速ネットワークを使用しない場合と使用した場合、2 台の VM 間の通信を比較すると以下のようになります。


URLに詳細な記載がありますが、以下理由によりネットワークが高速化されます。
待ち時間の短縮/1 秒あたりのパケット数 (pps) の向上
仮想マシンとの通信時、仮想スイッチを経由しなくなるため、パケットからホストでポリシー処理される時間がなくなります。
これにより、仮想マシン内で処理できるパケットの数が増加します。


2.ジッターの削減
ネットワーク遅延のジッター(揺らぎ)が解消されます。(遅いときと早いときの差が無くなる)仮想スイッチの処理は、適用する必要があるポリシーの量によって異なります。また、処理を行っている CPU のワークロードにも依存します。 ポリシーの適用をハードウェアにオフロードすると、パケットが VM に直接配信されるので、その変動が解消されます。 オフロードを行うと、ホストから VM への通信、すべてのソフトウェア割り込み、すべてのコンテキスト切り替えもなくなります。

3.CPU 使用率の削減

ホスト先の仮想スイッチをバイパスにすることで、ネットワークトラフィックを処理するために使用するCPUの使用率を削減することが可能です。

制限と制約

サポートされるオペレーティング システム
本記事ではWindowsのみに言及していますがLinuxでもサポートされています。
Windows
Linux

サポートされている VM インスタンス
vCPUの数によって高速ネットワークをサポートするかどうかが決まります。
サポートされている VM インスタンス
シリーズにもよりますが基本的には4つ以上のvCPUがサポート対象です。
2 つ以上の仮想 CPU (vCPU)・・・Dv2/DSv2 と F/Fs
4 つ以上の仮想 CPU (vCPU)・・・D/Dsv3、D/Dsv4、Da/Dasv4、E/Esv3、Ea/Easv4、Fsv2、Lsv2、Ms/Mms、および Ms/Mmsv2

高速ネットワークが有効になっていない仮想マシンの設定を変更する場合は、VM が停止されて、割り当てを解除されるときにだけ、機能を有効にできます。既存VMの機能を有効化する為にはVMを停止する必要がありますのでご注意ください。
今回は、「高速ネットワークオプションが既存で有効になっていない場合」を想定して、機能を有効にする方法について記載しています。

既存の VM で高速ネットワークを有効にする

高速ネットワークが有効になっていないVMの設定を変更することはAzurePortal上からの操作では実行できません。Powershellを使用する必要があります。手順については以下に記載があり、本記事でもこの手順を実行していきます。
個別の VM および可用性セット内の VM

1.仮想マシンの停止

VM (可用性セットの場合は、セット内のすべての VM) を停止するか、割り当てを解除します。

2.高速ネットワークの有効化

①~④までは事前準備です。設定の有効化コマンドは⑤~⑦です。

①Azure に接続します。

Connect-AzAccount

※事前にmoduleインストールが必要です

②サブスクリプション一覧表示

Get-AzSubscription

・表示された一覧から操作対象のサブスクリプションIDを確認し、③のコマンドで指定します

③サブスクリプション選択

Select-AzSubscription -SubscriptionId XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX

④仮想マシンのネットワークインターフェース情報が取得でいることを確認
※以降の手順でエラーとならないようにコマンド単体で確認しています

Get-AzNetworkInterface

⑤仮想マシンのNIC情報をセット

$nic = Get-AzNetworkInterface -ResourceGroupName “myResourceGroup” -Name “myNic

myResourceGroupには仮想マシンが所属するリソースグループ名を設定します。
myNicには仮想マシンのネットワークインターフェース名を設定します。

⑥高速ネットワーク有効化

$nic.EnableAcceleratedNetworking = $true

⑦NIC設定の保存

$nic | Set-AzNetworkInterface

以上で高速ネットワークが有効となります。
GUI上のNIC設定からも有効ステータスが確認可能です。


効果測定

仮想マシン情報
以下2台の仮想マシン間でNW速度を測定しました。
サイズ :standard D4s v3 (4 vcpu 数、16 GiB メモリ)
OS :Windows Server 2016 Datacenter
ディスク: standard HDD (128GB)

NWの測定ツールには以下で紹介されているNTttcpを利用しました。
帯域幅/スループットのテスト (NTTTCP)

高速ネットワーク有効化前
有効化前の2台のVM間のNW帯域です。秒間221MB(1,768Mbps)という数値でした。

高速ネットワーク有効化後
有効化後の2台のVM間のNW帯域です。秒間603MB(4,824Mbps)という数値でした。

NWのスループットに注目すると確実に早くなっています。

補足:ディスク性能について

NW高速化前後でファイルコピー時間を計測して、高速化が確認できるかどうか試してみましたが、結論、NWスループットが問題となる領域のテストはできませんでした。ファイルコピーではディスク性能が先に問題となる為、NW高速化実施だけでは、ファイル転送時間は短縮できませんでした。
以下、細かいファイル1万個のコピーと、それと同じサイズのファイル1個のコピー時間を計測した結果です。
NW高速化前後ではコピー時間は変わらず(むしろ遅くなっていますが誤差だと思います。。)、ディスクをPremium SSDに変更すると顕著に性能が向上しました。

NW高速化ディスク9.76 GBのファイルコピー(ファイル数1万)時間
(単位:分)
9.76 GBのファイルコピー(ファイル数1)時間
(単位:分)
OFFStandard HDD4:252:51
ONStandard HDD4:432:40
ONPremium SSD2:221:46

上記テストで使用したディスク情報は以下です。
Standard HDDのディスク性能
ディスクサイズ 128 GiB
IOPS 最大 500
ディスクスループット 最大 60 MB/秒

Premium SSDのディスク性能
ディスクサイズ 256 GiB
IOPS 1100
ディスクスループット 125 MB/秒

Premium SSD利用時の、NWスループットのグラフです。左のグラフの山がファイル1万個のコピー、右の山がファイル1個のコピーです。NWスループットの数値だけ見ると、理論値の上限にはまだまだ達していないように見えます。

一報ディスク観点で見てみると、大きいファイル1個をコピーする際のディスクスループットが頭打ちになっているように見えます。
ディスク性能観点で更に処理を向上させる余地があるように見えます。
※小さいファイル1万個のコピーの部分は、IOPSの問題だと思うのですが、IOPS自体は900ぐらい出ており、まだゆとりがありました。他部分(VMサイズなど)がボトルネックの可能性があります。

NW高速化については、NW以外(仮想マシンサイズ、ディスクなど)の部分でそのNW速度に見合うだけの性能を確保しないと、高速化の恩恵を得ることができないようです。

いいね (この記事が参考になった人の数:2)
(↑参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルプロセス&テクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください