VMXNET3 ドライバを使用した Linux 仮想マシンでトラフィック シェーピングが有効な分散 vSwitch への接続時にネットワーク スループットが低下する
search cancel

VMXNET3 ドライバを使用した Linux 仮想マシンでトラフィック シェーピングが有効な分散 vSwitch への接続時にネットワーク スループットが低下する

book

Article ID: 310458

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

Symptoms:

免責事項: これは英文の記事 「Linux virtual machines using VMXNET3 driver experience network throughput degradation when connected to Traffic Shaping enabled Distributed vSwitch (2030927)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


分散 vSwitch (DVS) でトラフィック シェーピングを有効にすると、VMXNET3 ドライバを使用した Linux 仮想マシンでネットワーク スループットが低下する。

この問題は次の条件でのみ見られる。
  • vSphere ESXi 4.1
  • Linux 仮想マシンが、VMXNET3 ドライバを使用した vNIC で構成されている
  • 仮想マシンがトラフィック シェーピングが有効な DVS dvportgroup に接続されている
: この問題は、vSphere 4.1 以外のリリースには適用されません。

Environment

VMware ESX 4.1.x
VMware ESXi 4.1.x Installable
VMware vCenter Server 4.1.x
VMware ESXi 4.1.x Embedded

Cause

vSphere 4.1 でのトラフィック シェーパー パケット処理には、Linux OS Large Receive Offload (LRO) / TCP セグメンテーション オフロード (TSO) 機能との互換性の問題があります。

: LRO 機能は、VMXNET3 ドライバでのみサポートされています。

Resolution

この問題を回避するには、次のいずれかのオプションを使用します。
  • この問題によって影響を受けないリリース(vSphere 4.0 または vSphere 5.0 以降)を使用する。

  • e1000 ドライバを使用する。

  • LSO 機能をゲスト OS レベルで無効化する。

    • TSO を無効化するには、次のコマンドを実行します:

      # ethtool -K device tso off

    • 2.6.24 より前のカーネルで LRO を無効化するには、次のコマンドを実行します:

      # rmmod vmxnet3
      # modprobe vmxnet3 disable_lro=1

    • 2.6.24 以降のカーネルで LRO を無効化するには、次のコマンドを実行します:

      # ethtool -K device lro off
: コマンド (ethtool、rmmod および modprobe)で行われた構成変更内容は再起動後は保持されません。再起動後も変更内容を保持するには、適切なコマンドを rc.local などの起動スクリプトに追加します。


Additional Information

  • 2.6.24 より後のカーネルで TSO/LRO 構成を確認するには、次のコマンドを実行します:

    # ethtool -k device

    rx-checksumming: on
    tx-checksumming: on
    scatter-gather: on
    tcp segmentation offload: off
    udp fragmentation offload: off
    generic segmentation offload: off
    generic-receive-offload: off

  • 2.6.24 より前のカーネルで LRO 構成を確認するには、次のコマンドを実行します:

    # dmesg | grep features

    最後の行に lro が表示されない場合、LRO 機能は現在そのホストに対して無効化されています。

    例:

    # dmesg | grep features
    features: sg csum vlan jf tso tsoIPv6 lro highDMA
    features: sg csum vlan jf tso tsoIPv6 highDMA

    この例では、LRO が無効化されます。

: -k (小文字)と -K (大文字)では、ethtool と使用するときの目的は異なります。

  • ethtool -k プロトコル オフロード情報を取得します
  • ethtool -K プロトコル オフロードを設定します
Linux virtual machines using VMXNET3 driver experience network throughput degradation when connected to Traffic Shaping enabled Distributed vSwitch