vSphere 5.1 以降の Windows 仮想マシンで大量の UDP パケットを転送すると、他のトラフィックを無視できる場合でもスループットが予測を下回るか変動します。

問題

Windows 仮想マシンで 1024 バイトを超える UDP パケットを転送すると、他のトラフィックを無視できる場合でも、スループットが予想を下回ったり、不安定になったりします。ビデオ ストリーミング サーバの場合は、ビデオのプレイバックが中断します。

1024 バイトを超えるすべての UDP パケットの場合、Windows ネットワーク スタックでは転送が完了するまで待機してから、次のパケットが送信されます。以前のリリースと異なり、vSphere 5.1 以降のリリースでは、このような場合の明白な回避策はありません。

手順

  • Windows ゲスト OS のレジストリを変更することで、UDP パケットに対して Windows の動作が変更するしきい値 (バイト単位) を増加します。
    1. HKLM\System\CurrentControlSet\Services\Afd\Parameters レジストリ キーを見つけます。
    2. データ型が DWORD で、名前が FastSendDatagramThreshold のレジストリに値 1500 を追加します。

    Windows レジストリでのこの問題の修正については、http://support.microsoft.com/kb/235257 を参照してください。

  • 仮想マシン NIC の一体化設定を変更します。

    Windows 仮想マシンに VMXNET3 vNIC アダプタがある場合は、仮想マシンの .vmx ファイルの次のいずれかのパラメータを構成します。vSphere Web Client を使用して変更するか、.vmx ファイルを直接変更します。

    操作

    パラメータ

    仮想マシンの割り込み率を、予期されるパケット率より高い値にします。たとえば、予期されるパケット率が 1 秒あたり 15000 個の割り込みの場合は、割り込み率を 1 秒あたり 16000 個の割り込みに設定します。ethernetX.coalescingScheme パラメータを rbc に設定し、ethernetX.coalescingParams パラメータを 16000 に設定します。デフォルトの割り込み率は、1 秒あたり 4000 個の割り込みです。

    ethernetX.coalescingScheme

    ethernetX.coalescingParams

    rbc

    16000

    低いスループットまたは遅延の影響を受けるワークロードに対して一体化を無効にします。

    ethernetX.coalescingScheme

    無効

    以前の ESXi リリースの一体化アルゴリズムに戻します。

    注:

    以前のアルゴリズムに戻す機能は、vSphere 5.5 以降のリリースでは使用できません。

    ethernetX.coalescingScheme

    calibrate

    ethernet の横にある X は、仮想マシンの vNIC のシーケンス番号を表します。

    .vmx ファイルのパラメータの構成については、『vSphere 仮想マシン管理』 ドキュメントを参照してください。

  • ESXi ホストの一体化設定を変更します。

    この方法は、ホスト上のすべての仮想マシンおよびすべての仮想マシン NIC に影響を及ぼします。

    vSphere Web Client を使用するか、ESXi シェル からホストで vCLI コンソール コマンドを使用して、ホストの詳細システム設定リストを編集できます。

    操作

    vSphere Web Client のパラメータ

    esxcli system settings sdvanced set コマンドのパラメータ

    デフォルトの割り込み率を予期されるパケット率より高い値に設定します。

    Net.CoalesceRBCRate

    /Net/CoalesceRBCRate

    たとえば、1 秒あたりに予期される割り込み数が 15000 の場合は、16000 に設定します。

    低いスループットまたは遅延の影響を受けるワークロードに対して一体化を無効にします。

    Net.CoalesceDefaultOn

    /Net/CoalesceDefaultOn

    0 に設定します。

    以前の ESXi リリースの一体化スキームに戻します。

    注:

    以前のアルゴリズムに戻す機能は、vSphere 5.5 以降のリリースでは使用できません。

    Net.CoalesceVersion

    /Net/CoalesceVersion

    1 に設定します。

    vSphere Web Client からのホストの構成については、『vCenter Server およびホスト管理』 ドキュメントを参照してください。vCLI コマンドを使用したホスト プロパティの設定については、『vSphere コマンドライン インターフェイスの参照』 ドキュメントを参照してください。