Large Receive Offload (LRO) を使用して、ネットワークから高レートで到達するパケットを処理するための CPU オーバーヘッドを軽減する方法について説明します。
LRO は、受信ネットワーク パケットをより大きなバッファに再構築します。これにより、パケットのサイズは大きくなりますが、数は少なくなります。次に、それらのパケットをホストまたは仮想マシンのネットワーク スタックに転送します。LRO が無効になっている場合と比較して CPU のパケット処理数が少なくなり、特にバンド幅の高い接続の場合はネットワーク使用率が減少します。
LRO によるパフォーマンス向上のメリットを得るには、VMkernel とゲスト OS が含まれる、ESXi ホストのデータ パスの LRO を有効にします。デフォルトでは、VMkernel および VMXNET3 仮想マシン アダプタで LRO が有効になっています。
データ パスの TCP パケット集約の場所の詳細については、VMware のナレッジ ベースの記事VMWare 環境における TCP セグメンテーション オフロード (TSO) と Large Receive Offload (LRO) についてを参照してください。
ESXi ホストでのすべての VMXNET3 アダプタのハードウェア LRO の管理
ゲスト OS でアセンブリ用のリソースを消費する代わりに LRO 技術を使用することにより、ホストの物理アダプタのハードウェア機能を有効にして VMXNET3 仮想マシン アダプタの受信 TCP パケットを集約します。
手順
- vSphere Clientで、ホストに移動します。
- [構成] タブの [システム] を展開します。
- [システムの詳細設定] をクリックします。
- Net.Vmxnet3HwLRO パラメータの値を編集します。
- ハードウェア LRO を有効にするには、Net.Vmxnet3HwLRO を 1 に設定します。
- ハードウェア LRO を無効にするには、Net.Vmxnet3HwLRO を 0 に設定します。
- [OK] をクリックして変更内容を保存します。
ESXi ホストでのすべての VMXNET3 アダプタのソフトウェア LRO の管理
ホストの物理アダプタでハードウェア LRO がサポートされていない場合、VMXNET3 アダプタの VMkernel バックエンドのソフトウェア LRO を使用して、仮想マシンのネットワーク パフォーマンスを向上させます。
vSphere では、IPv4 パケットと IPv6 パケットの両方でソフトウェア LRO がサポートされています。
前提条件
手順
- vSphere Clientで、ホストに移動します。
- [構成] タブの [システム] を展開します。
- [システムの詳細設定] をクリックします。
- VMXNET3 アダプタの Net.Vmxnet3SwLRO パラメータの値を編集します。
- ソフトウェア LRO を有効にするには、Net.Vmxnet3SwLRO を 1 に設定します。
- ソフトウェア LRO を無効にするには、Net.Vmxnet3SwLRO を 0 に設定します。
- [OK] をクリックして変更内容を保存します。
ESXi ホストの VMXNET3 アダプタで LRO が有効になっているかどうかの確認
遅延の影響を受けるワークロードを実行しているホストでネットワーク パフォーマンスを予測するとき、ESXi における LRO のステータスを調査します。
前提条件
手順
- vSphere Clientで、ホストに移動します。
- [構成] タブの [システム] を展開します。
- [システムの詳細設定] をクリックします。
- VMXNET2 および VMXNET3 の LRO パラメータの値を調査します。
- ハードウェア LRO については、Net.Vmxnet3HwLRO パラメータを調べます。このパラメータが 1 の場合、ハードウェア LRO は有効です。
- ソフトウェア LRO については、Net.Vmxnet3SwLRO パラメータを調べます。このパラメータが 1 の場合、ハードウェア LRO は有効です。
VMXNET 3 アダプタの LRO バッファのサイズの変更
VMXNET 3 ネットワーク アダプタを使用して、仮想マシン接続のパケット集約のバッファ サイズを変更できます。バッファ サイズを増やすと TCP ACK 数が減少し、ワークロードの効率が向上します。
手順
ESXi ホスト上のすべての VMkernel アダプタの LRO の有効化または無効化
ESXi ホスト上の VMkernel ネットワーク アダプタで LRO を使用して、着信インフラストラクチャ トラフィックのネットワーク パフォーマンスを向上させます。
手順
- vSphere Clientで、ホストに移動します。
- [構成] タブの [システム] を展開します。
- [システムの詳細設定] をクリックします。
- Net.TcpipDefLROEnabled パラメータの値を編集します。
- ホスト上の VMkernel ネットワーク アダプタの LRO を有効するには、Net.TcpipDefLROEnabled を 1 に設定します。
- ホスト上の VMkernel ネットワーク アダプタのソフトウェア LRO を無効にするには、Net.TcpipDefLROEnabled を 0 に設定します。
- [OK] をクリックして変更内容を保存します。
VMkernel アダプタの LRO バッファのサイズの変更
VMkernel 接続のパケット集約用のバッファ サイズは変更することができます。バッファ サイズを大きくして TCP 確認の数を減らし、VMkernel の効率を高めます。
手順
Linux 仮想マシンでの VMXNET3 アダプタでの LRO の管理
ホストの VMXNET3 アダプタで LRO を有効化する場合は、Linux 仮想マシンのネットワーク アダプタで LRO サポートをアクティブにして、より大きなバッファに着信パケットを集約するためにゲスト OS がリソースを消費しないようにします。
前提条件
Linux カーネルが 2.6.24 以降であることを確認します。
手順
- ♦ Linux ゲスト OS のターミナル ウィンドウで、-K および lro オプションを指定して ethtool コマンドを実行します。
- LRO を有効にするには、次のコマンドを実行します。
ethtool -K ethY lro on
ethY の Y は、仮想マシンの NIC のシーケンス番号です。
- LRO を無効にするには、次のコマンドを実行します。
ethtool -K ethY lro off
ethY の Y は、仮想マシンの NIC のシーケンス番号です。
- LRO を有効にするには、次のコマンドを実行します。
Windows 仮想マシンでの VMXNET3 アダプタの LRO の管理
ホストの VMXNET3 アダプタで LRO を有効化する場合は、Windows 仮想マシンのネットワーク アダプタで LRO サポートをアクティブにして、より大きなバッファに着信パケットを集約するためにゲスト OS がリソースを消費しないようにします。
Windows での LRO テクノロジーは、Receive Side Coalescing (RSC) と呼ばれます。
前提条件
- 仮想マシンで Windows Server 2012 以降または Windows 8 以降が実行されていることを確認します。
- 仮想マシンに ESXi 6.0 以降との互換性があることを確認します。
- ゲスト OS にインストールされている VMXNET3 ドライバのバージョンが 1.6.6.0 以降であることを確認します。
- Windows Server 2012 以降または Windows 8 以降が実行されている仮想マシンで LRO がグローバルに有効になっていることを確認します。Windows 仮想マシンでの LRO のグローバルな管理を参照してください。
手順
Windows 仮想マシンでの LRO のグローバルな管理
Windows 8 以降または Windows Server 2012 以降が実行されている仮想マシン上の VMXNET3 アダプタの Large Receive Offload (LRO) を使用するには、ゲスト OS で LRO をグローバルに有効にする必要があります。Windows での LRO テクノロジーは、Receive Side Coalescing (RSC) と呼ばれます。
手順
次のタスク
Windows 8 以降または Windows Server 2012 仮想マシンで VMXNET3 アダプタの LRO を有効にします。Windows 仮想マシンでの VMXNET3 アダプタの LRO の管理を参照してください。