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

問題

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

原因

1024 バイトを超えるすべての UDP パケットの場合、Windows ネットワーク スタックでは転送が完了するまで待機してから、次のパケットが送信されます。vSphere では、この状況の透過的な回避策を提供しません。

解決方法

  • 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 Client を使用して変更するか、 .vmx ファイルを直接変更します。
    操作 パラメータ
    仮想マシンの割り込み率を、予期されるパケット率より高い値にします。たとえば、予期されるパケット率が 1 秒あたり 15000 個の割り込みの場合は、割り込み率を 1 秒あたり 16000 個の割り込みに設定します。ethernetX.coalescingScheme パラメータを rbc に設定し、ethernetX.coalescingParams パラメータを 16000 に設定します。デフォルトの割り込み率は、1 秒あたり 4000 個の割り込みです。

    ethernetX.coalescingScheme

    ethernetX.coalescingParams

    rbc

    16000

    低いスループットまたは遅延の影響を受けるワークロードに対して一体化を無効にします。低遅延型ワークロードを構成する方法の詳細については『vSphere 仮想マシンで即時性ワークロードのチューニングを実行するためのベスト プラクティス』を参照してください。 ethernetX.coalescingScheme 無効

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

    注: 以前のアルゴリズムを戻す機能は、今後の vSphere リリースでは使用できなくなります。
    ethernetX.coalescingScheme calibrate

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

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

  • ESXi ホストの一体化設定を変更します。
    この方法は、ホスト上のすべての仮想マシンおよびすべての仮想マシン NIC に影響を及ぼします。

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

    操作 vSphere Client のパラメータ esxcli system settings sdvanced set コマンドのパラメータ
    デフォルトの割り込み率を予期されるパケット率より高い値に設定します。たとえば、1 秒あたりに予期される割り込み数が 15000 の場合は、割り込み率を 16000 に設定します。

    Net.CoalesceScheme

    Net.CoalesceParams

    /Net/CoalesceScheme

    /Net/CoalesceParams

    rbc

    16000

    低いスループットまたは遅延の影響を受けるワークロードに対して一体化を無効にします。低遅延型ワークロードを構成する方法の詳細については『vSphere 仮想マシンで即時性ワークロードのチューニングを実行するためのベスト プラクティス』を参照してください。 Net.CoalesceDefaultOn /Net/CoalesceDefaultOn 0

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

    注: 以前のアルゴリズムを戻す機能は、今後の vSphere リリースでは使用できなくなります。
    Net.CoalesceScheme /Net/CoalesceScheme calibrate

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