Search the VMware Knowledge Base (KB)
View by Article ID

LRO が有効になっている Linux 仮想マシンで、TCP のパフォーマンスが低下することがある (2090294)

  • 0 Ratings

Symptoms

免責事項: これは英文の記事 「Poor TCP performance might occur in Linux virtual machines with LRO enabled (1027511)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


VMXNET2 (拡張)および VMXNET3 デバイスでは、LRO (Large Receive Offload) 機能がデフォルトで有効になっています。Linux TCP/IP スタックは、LRO によって生成されたパケットを処理する際、パフォーマンスが低下することがあります。このため、Linux ゲスト OS が稼働している仮想マシンでこれらのデバイスの LRO が有効になっていると、TCP のパフォーマンスが低下する可能性があります。

Resolution

ゲスト OS の LRO の無効化

VMXNET3 仮想ネットワーク デバイスを使用しており、Linux カーネル 2.6.24 以降のゲスト OS を稼働している仮想マシン上で、ethtool コマンドを使用して LRO を無効にします。

ethtool コマンドを使用して LRO を無効にするには、次の手順を実行します。

  1. ethtool コマンドを実行して、各 VMXNET3 仮想ネットワーク インターフェイスで LRO を無効にします。

    # ethtool -K ethX lro off

    例:

    # ethtool -K eth0 lro off

    ethtool コマンドを使用して行った構成変更は、再起動後に無効になります。再起動後も変更内容を保持するには、上記の ethtool コマンドを起動スクリプト(rc.local など)に追加します。

旧バージョンの Linux カーネルを実行している仮想マシン、または VMXNET2 デバイスを使用している仮想マシンの場合は、vmxnet または vmxnet3 の Linux ドライバのモジュール ロード タイム パラメータに disable_lro=1 を設定して LRO を無効にします。

モジュール ロード タイム パラメータを設定するには、次の手順を実行します。

:RedHat Enterprise Linux/CentOS 5.x 仮想マシンで /etc/modprobe.conf ファイルを更新する場合、以下の手順ではうまくいかないことがあります。

  1. テキスト エディタを使用して、Linux ディストリビューションの /etc/modules ファイルまたは /etc/modules.conf ファイルを開きます。
  2. VMXNET または VMXNET3 ドライバの alias エントリを探します。

    alias eth0 vmxnet

    または

    alias eth0 vmxnet3

  3. alias の下の新規の行に、LRO を無効にする options エントリを追加します。

    例:

    alias eth0 vmxnet
    options vmxnet disable_lro=1

    または

    alias eth0 vmxnet3
    options vmxnet3 disable_lro=1

  4. 構成ファイルを保存します。
  5. Linux 仮想マシンを再起動して変更内容を適用します。

上記のバージョンの Linux で LRO を無効にするには、次の手順を実行します。

  1. テキスト エディタで、/etc/rc.local ファイルを開き、ドライバ(VMXNET または VMXNET3)に応じて、次の 2 行を追加します。

    rmmod vmxnet
    modprobe vmxnet disable_lro=1

    または

    rmmod vmxnet3
    modprobe vmxnet3 disable_lro=1


  2. 構成ファイルを保存します。
  3. 両方のコマンドをコマンド ラインから実行するか、仮想マシンを再起動して、変更内容を適用します。


ホスト上での LRO の無効化

次の手順を実行すると、ESXi/ESX ホスト上で LRO を無効にできます。

  1. vSphere Client を使用して、ESXi ホストまたは vCenter Server にログインします。
  2. インベントリ ツリー上で当該ホストに移動し、構成 タブの [ソフトウェア] の下の 詳細設定 をクリックします。
  3. Net を選択し、Vmxnet で始まるパラメータが現れるまで下向きにスクロールします。
  4. 次の LRO パラメータを 1 から 0 に設定します。

    Net.VmxnetSwLROSL
    Net.Vmxnet3SwLRO
    Net.Vmxnet3HwLRO
    Net.Vmxnet2SwLRO
    Net.Vmxnet2HwLRO


  5. ESXi/ESX ホストを再起動して変更内容を適用します。

追加情報

パフォーマンスの問題は、Linux 仮想マシンで無差別モードを使用して解決することもできます。これは、無差別モードを有効にすると、LRO が無効になるからです。

詳細については、「Linux virtual machines using VMXNET3 driver experience network throughput degradation when connected to Traffic Shaping enabled Distributed vSwitch (2030927)」を参照してください。

Tags

日本語 Japanese

See Also

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 0 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 0 Ratings
Actions
KB: