Azure 仮想マシンのネットワーク スループットの最適化

注意

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

Azure Virtual Machines (VM) には既定のネットワーク設定があり、ネットワーク スループットについてさらに最適化できます。 この記事では、Microsoft Azure の Windows VM および Linux VM (Ubuntu、CentOS、Red Hat などの主要ディストリビューションを含む) のネットワーク スループットを最適化する方法について説明します。

Windows Virtual Machines

Windows 仮想マシンで "高速ネットワーク" がサポートされている場合は、その機能を有効にして最適なスループットを実現します。 詳細については、高速ネットワークを使用した Windows VM の作成に関する記事を参照してください。

その他のすべての Windows VM では、Receive Side Scaling (RSS) を使用すると、RSS を使用しない VM より高い最大スループットを実現できます。 Windows VM では、RSS が既定で無効になっている場合があります。 RSS が有効かどうかを判断し、現在無効になっている場合は有効にするには、次の手順を実行します。

  1. Get-NetAdapterRss PowerShell コマンドを使用して、ネットワーク アダプターに対して RSS が有効になっているかどうかを確認します。 次の Get-NetAdapterRss からの出力例では、RSS は有効になっていません。

    Name                    : Ethernet
    InterfaceDescription    : Microsoft Hyper-V Network Adapter
    Enabled                 : False
    
  2. RSS を有効にするには、次のコマンドを入力します。

    Get-NetAdapter | % {Enable-NetAdapterRss -Name $_.Name}
    

    このコマンドには出力がありません。 このコマンドにより、NIC 設定が変更されます。 これにより、一時的に接続が失われます (約 1 分間)。 接続が失われている間、"再接続中" を示すダイアログが表示されます。 通常、3 回目の試行後に接続が復元されます。

  3. 再度 Get-NetAdapterRss コマンドを入力して、VM で RSS が有効になっていることを確認します。 成功した場合は、次のような出力が返されます。

    Name                    : Ethernet
    InterfaceDescription    : Microsoft Hyper-V Network Adapter
    Enabled                 : True
    

Linux Virtual Machines

Azure Linux VM では、RSS は既定で常に有効になっています。 2017 年 10 月以降にリリースされた Linux カーネルには、Linux VM がより高いネットワーク スループットを実現できる新しいネットワーク最適化オプションが含まれています。

新規デプロイ用の Ubuntu

Ubuntu Azure カーネルは、Azure でのネットワーク パフォーマンスに対して非常に効果的に最適化されています。 最新の最適化を得るには、まず以下のように、サポートされている最新バージョンの 18.04-LTS をインストールします。

"Publisher": "Canonical",
"Offer": "UbuntuServer",
"Sku": "18.04-LTS",
"Version": "latest"

作成が完了したら、次のコマンドを入力して、最新の更新プログラムを入手します。 次の手順は、Ubuntu Azure カーネルを現在実行している VM にも使用できます。

#run as root or preface with sudo
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade

既存の Ubuntu デプロイに既に Azure カーネルがあるにもかかわらず、エラーで更新に失敗する場合は、このオプションのコマンド セットが役立つことがあります。

#optional steps might be helpful in existing deployments with the Azure kernel
#run as root or preface with sudo
sudo apt-get -f install
sudo apt-get --fix-missing install
sudo apt-get clean
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade

既存の VM 用の Ubuntu Azure カーネル アップグレード

Azure Linux カーネルにアップグレードすると、スループットのパフォーマンスが大幅に向上する可能性があります。 このカーネルがあるかどうかを確認するには、カーネルのバージョンを調べてください。 例と同じかそれより新しいものにしてください。

#Azure kernel name ends with "-azure"
uname -r

#sample output on Azure kernel:
#4.13.0-1007-azure

仮想マシンに Azure カーネルがない場合、通常、バージョン番号は "4.4" で始まります。VM に Azure カーネルがない場合は、root として次のコマンドを実行します。

#run as root or preface with sudo
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt-get install "linux-azure"
sudo reboot

CentOS

最適化を最新のものにするために、次のパラメーターを指定して、サポートされている最新バージョンを使用して VM を作成することをお勧めします。

"Publisher": "OpenLogic",
"Offer": "CentOS",
"Sku": "7.7",
"Version": "latest"

新規および既存の VM の両方が、最新の Linux Integration Services (LIS) のインストールによってメリットを得られます。 スループットの最適化は、LIS の 4.2.2-2 以降に含まれています。 新しいバージョンほど、多くの機能強化が含まれています。 次のコマンドを入力して、最新の LIS をインストールします。

sudo yum update
sudo reboot
sudo yum install microsoft-hyper-v

Red Hat

最適化するために、次のパラメーターを指定して、サポートされている最新バージョンを使用して VM を作成することをお勧めします。

"Publisher": "RedHat"
"Offer": "RHEL"
"Sku": "7-RAW"
"Version": "latest"

新規および既存の VM の両方が、最新の LIS のインストールによってメリットを得られます。 スループットの最適化は、LIS の 4.2 以降に含まれています。 次のコマンドを実行して、LIS をダウンロードしてインストールします。

wget https://aka.ms/lis
tar xvf lis
cd LISISO
sudo ./install.sh #or upgrade.sh if prior LIS was previously installed

Hyper-V 用の Linux Integration Services バージョン 4.3 の詳細については、ダウンロード ページを参照してください。

次のステップ