瞭解如何使用大型接收卸載 (LRO) 減少 CPU 額外負荷,以處理以高速率從網路到達的封包。

LRO 會將傳入網路封包重組到較大的緩衝區,並將產生的較大但數量較少的封包傳輸到主機或虛擬機器的網路堆疊。此時,CPU 將處理少於 LRO 停用時封包數量的封包,這樣可減少其網路使用量 (尤其是在連線具有高頻寬的情況下)。

若要從 LRO 效能改善獲益,請在包括 VMkernel 和客體作業系統在內的 ESXi 主機的資料路徑上啟用 LRO。依預設,LRO 在 VMkernel 和 VMXNET3 虛擬機器介面卡中處於啟用狀態。

如需資料路徑中 TCP 封包彙總之位置的相關資訊,請參閱 VMware 知識庫文章瞭解 VMware 環境中的 TCP 分割卸載 (TSO) 和大型接收卸載 (LRO)

針對 ESXi 主機上的所有 VMXNET3 介面卡管理硬體 LRO

使用 LRO 技術啟用主機實體介面卡的硬體功能,為 VXMNET3 虛擬機器介面卡彙總傳入 TCP 封包,而不耗用在客體作業系統中進行組合所需的資源。

程序

  1. vSphere Client中,導覽至主機。
  2. 設定索引標籤上,展開系統
  3. 按一下進階系統設定
  4. 編輯 Net.Vmxnet3HwLRO 參數的值。
    • 若要啟用硬體 LRO,請將 Net.Vmxnet3HwLRO 設定為 1
    • 若要停用硬體 LRO,請將 Net.Vmxnet3HwLRO 設定為 0
  5. 按一下確定套用變更。

針對 ESXi 主機上的所有 VMXNET3 介面卡啟用軟體 LRO

如果主機實體介面卡不支援硬體 LRO,請在 VMXNET3 介面卡的 VMkernel 後端使用軟體 LRO,以提升虛擬機器的網路效能。

針對 IPv4 和 IPv6 封包,vSphere 支援軟體 LRO。

必要條件

程序

  1. vSphere Client中,導覽至主機。
  2. 設定索引標籤上,展開系統
  3. 按一下進階系統設定
  4. 針對 VMXNET3 介面卡,編輯 Net.Vmxnet3SwLRO 參數的值。
    • 若要啟用軟體 LRO,請將 Net.Vmxnet3SwLRO 設定為 1。
    • 若要停用軟體 LRO,請將 Net.Vmxnet3SwLRO 設定為 0。
  5. 按一下確定套用變更。

決定 ESXi 主機上是否針對 VMXNET3 介面卡啟用 LRO

當您估計執行延遲敏感型工作負載的主機的網路效能時,請檢查 ESXi 上 LRO 的狀態。

必要條件

程序

  1. vSphere Client中,導覽至主機。
  2. 設定索引標籤上,展開系統
  3. 按一下進階系統設定
  4. 檢查 VMXNET2 和 VMXNET3 的 LRO 參數的值。
    • 若為硬體 LRO,請檢查 Net.Vmxnet3HwLRO 參數。如果等於 1,則會啟用硬體 LRO。
    • 若為軟體 LRO,請檢查 Net.Vmxnet3SwLRO 參數。如果等於 1,則會啟用硬體 LRO。

變更 VMXNET 3 介面卡之 LRO 緩衝區的大小

您可以針對透過 VMXNET 3 網路介面卡之虛擬機器連線的封包匯總,變更緩衝區的大小。增加緩衝區的大小以減少 TCP 確認的數目並提高工作負載的效率。

程序

  1. vSphere Client中,導覽至主機。
  2. 設定索引標籤上,展開系統
  3. 按一下進階系統設定
  4. Net.VmxnetLROMaxLength 參數輸入介於 1 到 65,535 之間的值,以設定 LRO 緩衝區大小 (以位元組為單位)。
    依預設,LRO 緩衝區的大小為 32,000 個位元組。

ESXi 主機上的所有 VMkernel 介面卡啟用或停用 LRO

ESXi 主機上的 VMkernel 網路介面卡中使用 LRO,可提高傳入基礎結構流量的網路效能。

程序

  1. vSphere Client中,導覽至主機。
  2. 設定索引標籤上,展開系統
  3. 按一下進階系統設定
  4. 編輯 Net.TcpipDefLROEnabled 參數的值。
    • 若要為主機上的 VMkernel 網路介面卡啟用 LRO,請將 Net.TcpipDefLROEnabled 設為 1
    • 若要為主機上的 VMkernel 網路介面卡停用軟體 LRO,請將 Net.TcpipDefLROEnabled 設為 0
  5. 按一下確定套用變更。

針對 VMkernel 介面卡變更 LRO 緩衝區大小

您可以變更用於 VMkernel 連線之封包彙總緩衝區的大小。增加緩衝區的大小以減少 TCP 確認的數目,並提高 VMkernel 中的效率。

程序

  1. vSphere Client中,導覽至主機。
  2. 設定索引標籤上,展開系統
  3. 按一下進階系統設定
  4. 針對 Net.TcpipDefLROMaxLength 參數輸入介於 1 和 65535 之間的值,以位元組為單位設定 LRO 緩衝區大小。
    依預設,LRO 緩衝區的大小等於 32768 個位元組。

在 Linux 虛擬機器上管理 VMXNET3 介面卡上的 LRO

如果已為主機上的 VMXNET3 介面卡啟用 LRO,請針對 Linux 虛擬機器上的網路介面卡啟動 LRO 支援,以確保客體作業系統不會花費資源將傳入封包彙總到較大的緩衝區。

必要條件

確認 Linux 核心為 2.6.24 及更新版本。

程序

  • 在 Linux 客體作業系統上的終端機視窗中,執行具有 -Klro 選項的 ethtool 命令。
    • 若要啟用 LRO,請執行以下命令:
      ethtool -K ethY lro on

      其中,ethY 中的 Y 是指虛擬機器中 NIC 的序號。

    • 若要停用 LRO,請執行以下命令:
      ethtool -K ethY lro off

      其中,ethY 中的 Y 是指虛擬機器中 NIC 的序號。

在 Windows 虛擬機器上管理 VMXNET3 介面卡上的 LRO

如果已為主機上的 VMXNET3 介面卡啟用 LRO,請針對 Windows 虛擬機器上的網路介面卡啟動 LRO 支援,以確保客體作業系統不會花費資源將傳入封包彙總到較大的緩衝區。

在 Windows 上,LRO 技術也稱為接收端聯合 (RSC)。

必要條件

  • 確認虛擬機器執行 Windows Server 2012 及更新版本,或 Windows 8 及更新版本。
  • 確認虛擬機器相容性為 ESXi 6.0 及更新版本。
  • 確認客體作業系統上安裝的 VMXNET3 驅動程式版本為 1.6.6.0 及更新版本。
  • 確認已在執行 Windows Server 2012 及更新版本或 Windows 8 及更新版本的虛擬機器上全域啟用 LRO。請參閱在 Windows 虛擬機器上全域管理 LRO

程序

  1. 在客體作業系統控制台的網路和共用中心中,按一下網路介面卡的名稱。
    將出現一個對話方塊,其中顯示介面卡的狀態。
  2. 按一下內容,並且在 VMXNET3 網路介面卡類型下方,按一下設定
  3. 進階索引標籤上,將 Recv 區段聯合 (IPv4)Recv 區段聯合 (IPv6) 同時設為已啟用已停用
  4. 按一下確定

在 Windows 虛擬機器上全域管理 LRO

若要在執行 Windows 8 及更新版本或 Windows Server 2012 及更新版本之虛擬機器的 VMXNET3 介面卡上使用大型接收卸載 (LRO),您必須在客體作業系統上全域啟用 LRO。在 Windows 上,LRO 技術也稱為接收端聯合 (RSC)。

程序

  1. 若要確認 Windows 8 及更新版本或 Windows Server 2012 客體作業系統上是否已全域停用 LRO,請在命令提示字元中執行 netsh int tcp show global 命令。
    netsh int tcp show global

    該命令會顯示 Windows 8.x 作業系統上設定之全域傳輸控制通訊協定 (TCP) 參數的狀態。

    TCP 全域參數 ---------------------------------------------- 接收端調整狀態:已啟用 Chimney 卸載狀態:已停用 NetDMA 狀態:已停用 直接快取存取 (DCA):已停用 接收 Window 自動調整層級:一般 附加元件壅塞控制提供者:無 ECN 功能:已停用 RFC 1323 時間戳記:已停用 初始 RTO:3000 接收區段聯合狀態:已停用 

    如果已在 Windows 8 及更新版本或 Windows Server 2012 機器上全域停用 LRO,[接收區段聯合狀態] 內容會顯示為已停用。

  2. 若要在 Windows 作業系統上全域啟用 LRO,請在命令提示字元中執行 netsh int tcp set global 命令:
     netsh int tcp set global rsc=enabled

下一步

針對 Windows 8 及更新版本或 Windows Server 2012 虛擬機器上的 VMXNET3 介面卡啟用 LRO。請參閱在 Windows 虛擬機器上管理 VMXNET3 介面卡上的 LRO