瞭解如何在 VMkernel 網路介面卡和虛擬機器中使用 TCP 分割卸載 (TSO),以提高延遲需求較為嚴重的工作負載的網路效能。
實體網路介面卡以及 VMkernel 和虛擬機器網路介面卡之傳輸路徑的 TSO 透過降低 TCP/IP 網路作業的 CPU 額外負荷,可提高 ESXi 主機的效能。如果啟用 TSO,網路介面卡會將較大的資料區塊分為多個 TCP 區段 (而非 CPU)。VMkernel 和客體作業系統可使用更多的 CPU 週期來執行應用程式。
若要獲益於 TSO 所提供的效能改善,請沿著 ESXi 主機 (包括實體網路介面卡、VMkernel 以及客體作業系統) 上的資料路徑啟用 TSO。依預設,TSO 會在 ESXi 主機的 VMkernel 以及 VMXNET 2 和 VMXNET 3 虛擬機器介面卡中啟用。
如需資料路徑中 TCP 封包分割位置的相關資訊,請參閱 VMware 知識庫文章暸解 VMware 環境中的 TCP 分割卸載 (TSO) 和大型接收卸載 (LRO)。
在 VMkernel 中管理軟體 TSO
如果實體網路介面卡遇到 TSO 的問題,您可以在 VMkernel 中暫時啟用 TSO 的軟體模擬,直到對問題進行疑難排解為止。
程序
- ♦ 執行這些 esxcli network nic software set 主控台命令,在 VMkernel 中啟用或停用 TSO 的軟體模擬。
- 在 VMkernel 中啟用 TSO 的軟體模擬。
esxcli network nic software set --ipv4tso=1 -n vmnicX esxcli network nic software set --ipv6tso=1 -n vmnicX
- 在 VMkernel 中停用 TSO 的軟體模擬。
esxcli network nic software set --ipv4tso=0 -n vmnicX esxcli network nic software set --ipv6tso=0 -n vmnicX
其中,vmnic X 中的 X 表示主機上的 NIC 連接埠號碼。
組態變更會在主機重新開機後保留。
- 在 VMkernel 中啟用 TSO 的軟體模擬。
如何確定 ESXi 主機的實體網路介面卡上是否支援 TSO
對執行延遲敏感之工作負載的主機進行網路效能估計時,檢查實體網路介面卡是否卸載 TCP/IP 封包分割。如果實體網路介面卡支援 TSO,則依預設會啟用 TSO。
程序
- ♦ 執行下列主控台命令以判斷主機的實體網路介面卡上是否已啟用 TSO。
esxcli network nic tso get
在 ESXi 主機上管理 TSO
在傳輸路徑上啟用 TCP 分割卸載 (TSO),讓 NIC 將較大的資料區塊分為多個 TCP 區段。停用 TSO 以使 CPU 執行 TCP 分割。
依預設,如果主機的實體介面卡支援硬體 TSO,則主機會使用硬體 TSO。
程序
- 在 vSphere Client中,導覽至主機。
- 在設定索引標籤上,展開系統。
- 按一下進階系統設定。
- 編輯 Net.UseHwTSO 參數 (針對 IPv4) 和 Net.UseHwTSO6 (針對 IPv6) 的值。
- 若要啟用 TSO,請將 Net.UseHwTSO 和 Net.UseHwTSO6 設定為 1。
- 若要停用 TSO,請將 Net.UseHwTSO 和 Net.UseHwTSO6 設定為 0。
- 按一下確定套用變更。
- 若要重新載入實體介面卡的驅動程式模組,請在主機上的 ESXi Shell 中執行 esxcli system module set 主控台命令。
- 若要停用此驅動程式,請執行 esxcli system module set 命令與 --enabled false 選項。
esxcli system module set --enabled false --module nic_driver_module
- 若要啟用此驅動程式,請執行 esxcli system module set 命令與 --enabled true 選項。
esxcli system module set --enabled true --module nic_driver_module
- 若要停用此驅動程式,請執行 esxcli system module set 命令與 --enabled false 選項。
結果
如何找出 ESXi 主機上是否啟用了 TSO
在您估計執行延遲敏感型工作負載的主機的網路效能時,請檢查 VMkernel 中是否已啟用硬體 TSO。依預設,ESXi 主機上已啟用硬體 TSO。
程序
在 Linux 虛擬機器上管理 TSO
在 Linux 虛擬機器的網路介面卡上啟用 TSO 支援,使得客體作業系統可以將需要分割的 TCP 封包重新導向到 VMkernel。
必要條件
- 確認 ESXi 支援 Linux 客體作業系統。
請參閱 VMware 相容性指南說明文件。
- 確認 Linux 虛擬機器的網路介面卡是 VMXNET2 或 VMXNET3。
程序
- ♦ 在 Linux 客體作業系統上的終端機視窗中,若要啟用或停用 TSO,請執行 ethtool 命令以及 -K 和 tso 選項。
- 若要啟用 TSO,請執行以下命令:
ethtool -K ethY tso on
- 若要停用 TSO,請執行以下命令:
ethtool -K ethY tso off
其中,ethY 中的 Y 是指虛擬機器中 NIC 的序號。
- 若要啟用 TSO,請執行以下命令:
在 Windows 虛擬機器上管理 TSO
依預設,在 VMXNET2 和 VXMNET3 網路介面卡上的Windows虛擬機器上會啟用 TSO。由於效能原因,您可能需要停用 TSO。
必要條件
- 確認 ESXi 支援 Windows 客體作業系統。請參閱 VMware 相容性指南說明文件。
- 確認 Windows 虛擬機器的網路介面卡是 VMXNET2 或 VMXNET3。