了解如何在 VMkernel 网络适配器和虚拟机中使用 TCP 分段卸载 (TSO),提高具有严格延迟要求的工作负载中的网络性能。
物理网络适配器和 VMkernel 及虚拟机网络适配器传输路径的 TSO 可降低 TCP/IP 网络操作的 CPU 开销,从而提高 ESXi 主机的性能。如果启用 TSO,网络适配器会将较大的数据块(而非 CPU)分为多个 TCP 分段。VMkernel 和客户机操作系统可以使用更多的 CPU 周期运行应用程序。
要从 TSO 提供的性能改进中受益,请在 ESXi 主机上通过数据路径启用 TSO,包括物理网络适配器、VMkernel 和客户机操作系统。默认情况下,在 ESXi 主机的 VMkernel 及 VMXNET 2 和 VMXNET 3 虚拟机适配器中启用 TSO。
有关数据路径中 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
其中,vmnicX 中的 X 表示主机上的网卡端口号。
此配置更改在主机重新引导后仍然保留。
- 在 VMkernel 中激活 TSO 软件模拟。
如何确定 ESXi 主机上的物理网络适配器是否支持 TSO
在估算运行延迟敏感型工作负载的主机上的网络性能时,检查物理网络适配器是否卸载 TCP/IP 数据包分段。如果物理网络适配器支持 TSO,则 TSO 在默认情况下处于启用状态。
过程
- ♦ 运行以下控制台命令以确定 TSO 在主机的物理网络适配器上是否处于启用状态。
esxcli network nic tso get
在 ESXi 主机上管理 TSO
在传输路径上激活 TCP 分段卸载 (TSO) 可让网卡将较大的数据块分为多个 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
在估算运行延迟敏感型工作负载的主机上的网络性能时,检查硬件 TSO 在 VMkernel 中是否处于启用状态。默认情况下,硬件 TSO 在 ESXi 主机上处于启用状态。
过程
在 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 是虚拟机中网卡的序列号。
- 要激活 TSO,请运行以下命令:
管理 Windows 虚拟机上的 TSO
默认情况下,在 Windows 虚拟机的 VMXNET2 和 VXMNET3 网络适配器上激活 TSO。出于性能考虑,您可能需要停用 TSO。
前提条件
- 确保 ESXi 支持 Windows 客户机操作系统。请参见《VMware 兼容性指南》文档。
- 验证 Windows 虚拟机网络适配器是否为 VMXNET2 或 VMXNET3。