了解如何使用大型接收卸载 (LRO) 降低因高速处理从网络传入的数据包而产生的 CPU 开销。
LRO 将入站网络数据包重新集合到较大的缓冲区,然后将产生的较大但数量较少的数据包传输到主机或虚拟机的网络堆栈中。与停用 LRO 时相比,CPU 需要处理的数据包减少,从而降低了网络利用率,对于具有高带宽的连接尤为如此。
要从 LRO 性能改进中受益,请在 ESXi 主机的数据路径所涉及的组件上启用 LRO,这些组件包括 VMkernel 和客户机操作系统。默认情况下,VMkernel 和 VMXNET3 虚拟机适配器中会激活 LRO。
有关数据路径中 TCP 数据包聚合的位置的信息,请参见 VMware 知识库文章《了解 VMware 环境中的 TCP 分段卸载 (TSO) 和大型接收卸载 (LRO)》。
管理 ESXi 主机上所有 VMXNET3 适配器的硬件 LRO
激活主机物理适配器的硬件功能来汇总 VXMNET3 虚拟机适配器的入站 TCP 数据包,方法是在客户机操作系统中进行组合时使用 LRO 技术而不是消耗资源。
过程
- 在 vSphere Client 中,导航到主机。
- 在配置选项卡上,展开系统。
- 单击高级系统设置。
- 编辑 Net.Vmxnet3HwLRO 参数的值。
- 要激活硬件 LRO,请将 Net.Vmxnet3HwLRO 设置为 1。
- 要停用硬件 LRO,请将 Net.Vmxnet3HwLRO 设置为 0。
- 单击确定应用更改。
管理 ESXi 主机上所有 VMXNET3 适配器的软件 LRO
如果主机物理适配器不支持硬件 TSO,则在 VMXNET3 适配器的 VMkernel 后端中可使用软件 LRO 来提高虚拟机的网络性能。
vSphere 可为 IPv4 和 IPv6 数据包提供软件 LRO 支持。
前提条件
过程
- 在 vSphere Client 中,导航到主机。
- 在配置选项卡上,展开系统。
- 单击高级系统设置。
- 编辑 VMXNET3 适配器的 Net.Vmxnet3SwLRO 参数的值。
- 要激活软件 LRO,请将 Net.Vmxnet3SwLRO 设置为 1。
- 要停用软件 LRO,请将 Net.Vmxnet3SwLRO 设置为 0。
- 单击确定应用更改。
确保是否为 ESXi 主机上的 VMXNET3 适配器启用了 LRO
在估算运行了延迟敏感型工作负载的主机上的网络性能时,请检查 ESXi 上的 LRO 状态。
前提条件
过程
- 在 vSphere Client 中,导航到主机。
- 在配置选项卡上,展开系统。
- 单击高级系统设置。
- 检查 VMXNET2 和 VMXNET3 的 LRO 参数的值。
- 对于硬件 LRO,请检查 Net.Vmxnet3HwLRO 参数。如果该参数等于 1,则硬件 LRO 已启用。
- 对于软件 LRO,请检查 Net.Vmxnet3SwLRO 参数。如果该参数等于 1,则硬件 LRO 已启用。
更改 VMXNET 3 适配器的 LRO 缓冲区大小
您可以更改用于通过 VMXNET 3 网络适配器的虚拟机连接的数据包汇总的缓冲区大小。增加缓冲区大小可减少 TCP 确认的数量并提高工作负载的效率。
过程
对 ESXi 主机上的所有 VMkernel 适配器激活或停用 LRO
在 ESXi 主机的 VMkernel 网络适配器中使用 LRO 以提高入站基础架构流量的网络性能。
过程
- 在 vSphere Client 中,导航到主机。
- 在配置选项卡上,展开系统。
- 单击高级系统设置。
- 编辑 Net.TcpipDefLROEnabled 参数的值。
- 要对主机上的 VMkernel 网络适配器激活 LRO,请将 Net.TcpipDefLROEnabled 设置为 1。
- 要对主机上的 VMkernel 网络适配器停用软件 LRO,请将 Net.TcpipDefLROEnabled 设置为 0。
- 单击确定应用更改。
更改 VMkernel 适配器的 LRO 缓冲区大小
您可以更改用于 VMkernel 连接的数据包汇总的缓冲区大小。增加缓冲区大小可减少 TCP 确认的数量并提高 VMkernel 中的效率。
过程
在 Linux 虚拟机上管理 VMXNET3 适配器上的 LRO
如果在主机上为 VMXNET3 适配器启用了 LRO,则可在 Linux 虚拟机上激活对网络适配器的 LRO 支持,以确保客户机操作系统不会使用资源将入站数据包汇总成较大的缓存。
前提条件
验证 Linux 内核版本是否为 2.6.24 和更高版本。
过程
- ♦ 在 Linux 客户机操作系统的终端窗口中,将 ethtool 命令与 -K 和 lro 选项一起运行。
- 要激活 LRO,请运行以下命令:
ethtool -K ethY lro on
其中,ethY 中的 Y 是虚拟机中网卡的序列号。
- 要停用 LRO,请运行以下命令:
ethtool -K ethY lro off
其中,ethY 中的 Y 是虚拟机中网卡的序列号。
- 要激活 LRO,请运行以下命令:
在 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。
过程
在 Windows 虚拟机上全局管理 LRO
要在运行 Windows 8 及更高版本或 Windows Server 2012 及更高版本的虚拟机上的 VMXNET3 适配器上使用大型接收卸载 (LRO),必须在客户机操作系统上全局启用 LRO。在 Windows 上,LRO 技术也称为接收方合并 (RSC)。
过程
下一步做什么
为 Windows 8 及更高版本或 Windows Server 2012 虚拟机上的 VMXNET3 适配器启用 LRO。请参见在 Windows 虚拟机上管理 VMXNET3 适配器上的 LRO。