次の方法で共有


ソフトウェア定義ネットワークでの HNV ゲートウェイのパフォーマンス チューニング

このトピックでは、Windows Server Gateway 仮想マシン (VM) の構成パラメーターに加えて、Hyper-V Windows Server Gateway 仮想マシンを実行およびホストしているサーバーのハードウェア仕様と構成に関する推奨事項について説明します。 Windows Server ゲートウェイ VM から最適なパフォーマンスを引き出すには、これらのガイドラインに従う必要があります。 次のセクションでは、Windows Server ゲートウェイをデプロイする際のハードウェアと構成の要件について説明します。

  1. Hyper-V ハードウェアの推奨事項
  2. Hyper-V ホスト構成
  3. Windows Server ゲートウェイ VM の構成

Hyper-V ハードウェアの推奨事項

次に、Windows Server 2016 と Hyper-V を実行している各サーバーで推奨される最小ハードウェア構成を示します。

サーバー コンポーネント 仕様
中央処理装置(CPU) Non-Uniform Memory Architecture(NUMA)ノード:2
ホスト上に複数の Windows Server ゲートウェイ VM がある場合、最適なパフォーマンスを得るには、各ゲートウェイ VM に 1 つの NUMA ノードへのフル アクセスが必要です。 また、ホスト物理アダプターが使用する NUMA ノードとは異なる必要があります。
NUMA ノードあたりのコア数 2
Hyper-Threading 無効。 Hyper-Threading では、Windows Server ゲートウェイのパフォーマンスは向上しません。
ランダムアクセスメモリ(RAM) 48ギガバイト
ネットワークインターフェイスカード(NIC) 2 つの 10 GB NIC 、ゲートウェイのパフォーマンスはライン レートによって異なります。 ライン レートが 10Gbps 未満の場合、ゲートウェイ トンネルのスループット数も同じ係数で減少します。

Windows Server ゲートウェイ VM に割り当てられている仮想プロセッサの数が、NUMA ノード上のプロセッサの数を超えないようにしてください。 たとえば、NUMA ノードに 8 つのコアがある場合、仮想プロセッサの数は 8 以下である必要があります。 最高のパフォーマンスを得るには、8 にする必要があります。 NUMA ノードの数と NUMA ノードあたりのコア数を調べるには、各 Hyper-V ホストで次の Windows PowerShell スクリプトを実行します。

$nodes = [object[]] $(gwmi –Namespace root\virtualization\v2 -Class MSVM_NumaNode)
$cores = ($nodes | Measure-Object NumberOfProcessorCores -sum).Sum
$lps = ($nodes | Measure-Object NumberOfLogicalProcessors -sum).Sum


Write-Host "Number of NUMA Nodes: ", $nodes.count
Write-Host ("Total Number of Cores: ", $cores)
Write-Host ("Total Number of Logical Processors: ", $lps)

Von Bedeutung

NUMA ノード間で仮想プロセッサを割り当てると、Windows Server ゲートウェイに悪影響を及ぼす可能性があります。 複数の VM を実行し、各 VM に 1 つの NUMA ノードからの仮想プロセッサがある場合、すべての仮想プロセッサが割り当てられている 1 つの VM よりも総パフォーマンスが向上する可能性があります。

各 NUMA ノードに 8 つのコアがある場合、各 Hyper-V ホストにインストールするゲートウェイ VM の数を選択する場合は、8 つの仮想プロセッサと少なくとも 8 GB の RAM を搭載した 1 つのゲートウェイ VM をお勧めします。 この場合、1 つの NUMA ノードがホスト マシン専用になります。

Hyper-V ホスト構成

次に、Windows Server 2016 および Hyper-V を実行し、ワークロードが Windows Server ゲートウェイ VM を実行する各サーバーの推奨構成を示します。 これらの構成手順には、Windows PowerShell コマンドの例の使用が含まれています。 これらの例には、環境内でコマンドを実行するときに指定する必要がある実際の値のプレースホルダーが含まれています。 たとえば、ネットワーク アダプター名のプレースホルダーは "NIC1" と "NIC2" です。これらのプレースホルダーを使用するコマンドを実行する場合は、プレースホルダーを使用するのではなく、サーバー上のネットワーク アダプターの実際の名前を使用します。そうしないと、コマンドは失敗します。

次の Windows PowerShell コマンドを実行するには、Administrators グループのメンバーである必要があります。

設定項目 Windows Powershell の構成
スイッチ組み込みチーミング 複数のネットワーク アダプタを使用して vswitch を作成すると、それらのアダプタのスイッチ埋め込みチーム化が自動的に有効になります。
New-VMSwitch -Name TeamedvSwitch -NetAdapterName "NIC 1","NIC 2"
LBFO による従来のチーム化は、Windows Server 2016 の SDN ではサポートされていません。 スイッチ組み込みチーミングを使用すると、仮想トラフィックとRDMAトラフィックに同じNICセットを使用できます。 これは、LBFO に基づく NIC チーミングではサポートされていませんでした。
物理 NIC での割り込みモデレーション デフォルト設定を使用します。 構成を確認するには、次の Windows PowerShell コマンドを使用できます。 Get-NetAdapterAdvancedProperty
物理 NIC 上の受信バッファーのサイズ 物理 NIC がこのパラメータの設定をサポートしているかどうかを確認するには、コマンド [ Get-NetAdapterAdvancedProperty] を実行します。 このパラメーターをサポートしていない場合、コマンドからの出力にはプロパティ "Receive Buffers" は含まれません。NIC がこのパラメーターをサポートしている場合は、次の Windows PowerShell コマンドを使用して受信バッファーのサイズを設定できます。
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Receive Buffers" –DisplayValue 3000
物理 NIC 上の送信バッファーのサイズ 物理 NIC がこのパラメータの設定をサポートしているかどうかを確認するには、コマンド [ Get-NetAdapterAdvancedProperty] を実行します。 NIC がこのパラメーターをサポートしていない場合、コマンドからの出力にはプロパティ "Send Buffers" は含まれません。NIC がこのパラメーターをサポートしている場合は、次の Windows PowerShell コマンドを使用して送信バッファーのサイズを設定できます。
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Transmit Buffers" –DisplayValue 3000
物理 NIC での受信側スケーリング (RSS) 物理 NIC で RSS が有効になっているかどうかを確認するには、Windows PowerShell コマンド Get-NetAdapterRss を実行します。 次の Windows PowerShell コマンドを使用して、ネットワーク アダプターで RSS を有効にして構成できます。
Enable-NetAdapterRss "NIC1","NIC2"
Set-NetAdapterRss "NIC1","NIC2" –NumberOfReceiveQueues 16 -MaxProcessors
注: VMMQ または VMQ が有効になっている場合は、物理ネットワーク アダプタで RSS を有効にする必要はありません。 ホスト仮想ネットワーク アダプターで有効にできます
VMMQの VM の VMMQ を有効にするには、次のコマンドを実行します。
Set-VmNetworkAdapter -VMName <gateway vm name>,-VrssEnabled $true -VmmqEnabled $true
注: すべてのネットワーク アダプターが VMMQ をサポートしているわけではありません。 現在、Chelsio T5 と T6、Mellanox CX-3 と CX-4、QLogic 45xxx シリーズでサポートされています
NIC チームの仮想マシン キュー (VMQ) SET チームで VMQ を有効にするには、次の Windows PowerShell コマンドを使用します。
Enable-NetAdapterVmq
注: これは、HW が VMMQ をサポートしていない場合にのみ有効にする必要があります。 サポートされている場合は、パフォーマンスを向上させるために VMMQ を有効にする必要があります。

VMQ と vRSS は、VM の負荷が高く、CPU が最大限に使用されている場合にのみ表示されます。 そうして初めて、少なくとも 1 つのプロセッサ コアが最大になります。VMQとvRSSは、処理負荷を複数のコアに分散するのに役立ちます。 IPsec トラフィックは 1 つのコアに限定されるため、これは IPsec トラフィックには適用されません。

Windows Server ゲートウェイ VM の構成

Hyper-V ホストの両方で、Windows Server ゲートウェイを使用してゲートウェイとして構成された複数の VM を構成できます。 Virtual Switch Manager を使用して、Hyper-V ホスト上の NIC チームにバインドされた Hyper-V Virtual Switch を作成できます。 最適なパフォーマンスを得るには、Hyper-V ホストに 1 つのゲートウェイ VM をデプロイする必要があることに注意してください。 次に、各 Windows Server ゲートウェイ VM の推奨構成を示します。

設定項目 Windows Powershell の構成
記憶 8 GB
仮想ネットワーク アダプターの数 次の特定の用途を持つ 3 つの NIC: 管理オペレーティング システムによって使用される管理用の 1 つ、外部ネットワークへのアクセスを提供する 1 つの外部、内部ネットワークへのアクセスのみを提供する内部 1 つの NIC です。
Receive Side Scaling(RSS)(受信側スケーリング(RSS)) 管理 NIC のデフォルトの RSS 設定をそのまま使用できます。 次の構成例は、8 つの仮想プロセッサを持つ VM 用です。 外部 NIC と内部 NIC では、次の Windows PowerShell コマンドを使用して、BaseProcNumber を 0 に、MaxRssProcessors を 8 に設定して RSS を有効にできます。
Set-NetAdapterRss "Internal","External" –BaseProcNumber 0 –MaxProcessorNumber 8
送信側バッファ 管理 NIC のデフォルトの Send Side Buffer 設定を保持できます。 内部 NIC と外部 NIC の両方で、次の Windows PowerShell コマンドを使用して、32 MB の RAM で送信側バッファーを構成できます。
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Send Buffer Size" –DisplayValue "32MB"
受信側バッファ 管理 NIC のデフォルトの Receive Side Buffer 設定をそのまま使用できます。 内部 NIC と外部 NIC の両方で、次の Windows PowerShell コマンドを使用して、受信側バッファーを 16 MB の RAM で構成できます。
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Receive Buffer Size" –DisplayValue "16MB"
フォワード・オプティマイゼーション 管理 NIC のデフォルトの前方最適化設定をそのまま使用できます。 内部 NIC と外部 NIC の両方で、次の Windows PowerShell コマンドを使用して前方最適化を有効にできます。
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Forward Optimization" –DisplayValue "1"