启用 NSX 的 vSphere vDS 上重传次数过多

启用 NSX 的 vSphere vDS 上重传次数过多

我目前正在测试 VMware NSX 网络环境,遇到了一些问题。

我的环境是:

  • 具有 3 个主机的管理集群和 2 个专用主机上的 NSX 组件
  • 具有 2 个主机的计算群集
  • 单 1Gbps 交换机
  • vSphere 版本 6.0 和 NSX 版本 6.2
  • 每个主机有一条专用 UTP 线路用于管理和 iSCSI(VLAN 标记)
  • 每个主机有一条专用的 UTP 线路用于传输网络(用于虚拟机流量)
  • 每个管理主机有一条用于外部网络的专用 UTP 线路

当一个VM Von通过 NSX 网络向onHost H发送数据时,会发生大量重传。我测试了以下许多情况:VM WHost I

有问题的案例:

  1. V单次会话发送约 20MB W:重传约 19MB
  2. V单次会话发送约 50MB W:重传速度仅为 19MB
  3. VW在30个并发会话中发送大约2MB :在随机位置重新传输。

H在这种情况下,我发现在从的数据包转储vmnic(上行链路)上存在一些数据包顺序不匹配(可能是重新传输的原因) ,并且延迟的数据包是唯一的(以前在转储中没有出现过),但在从vDS下行链路到 VMVsfw的转储中,它们出现了两次(原始数据包和重新传输的数据包)。所以我认为,问题是发送方堆栈上丢失了一些数据包,尤其是在 VM和主机的物理网卡V之间。VH

为了将数据路径/堆栈分成两个扇区并进行独立检查,我使用X同一主机上的另一个目标虚拟机测试了相同的情况H。然后我得到了干净的转储,我发现同一主机上的虚拟机之间没有重传问题。(所以我认为,vDS 本身及以上版本没有错误点。)

接下来,我测试了以下案例来检查问题是否与大量数据流量或大量过滤和/或封装有关:

  1. 启用相同测试Network I/O Control:相同问题
  2. 相同的测试,没有Network I/O Control:相同的问题,但有一些差异。
  3. 相同的测试,但吞吐量降低N I/O C Limit:同样的问题
  4. TSO禁用(e1000 驱动程序)vnic的相同测试V:同样的问题
  5. vDS MTU9000 相同的测试:同样的问题,但有更多问题

一些不同之处包括:

Network I/O Control启用时,首先,RTT在重新传输之前增加,然后在重新传输完成后,RTT值处于稳定范围内。

但是当Network I/O Control禁用时,RTT重新传输后也会像开始时一样再次增加。

更奇怪的是,虽然我设置MTU为 9000,但是嵌入 VxLAN 数据包的 UTP 数据包大小都在 1600 以下,所以效果MTU 9000不受影响。

我遇到了麻烦。能帮我一下吗?谢谢。


编辑 - -

如果虚拟机处于正常、NSX禁用状态,vDS则一切都正常。


编辑* OpenvSwitch 上存在类似问题吗?

相关内容