我目前正在测试 VMware NSX 网络环境,遇到了一些问题。
我的环境是:
- 具有 3 个主机的管理集群和 2 个专用主机上的 NSX 组件
- 具有 2 个主机的计算群集
- 单 1Gbps 交换机
- vSphere 版本 6.0 和 NSX 版本 6.2
- 每个主机有一条专用 UTP 线路用于管理和 iSCSI(VLAN 标记)
- 每个主机有一条专用的 UTP 线路用于传输网络(用于虚拟机流量)
- 每个管理主机有一条用于外部网络的专用 UTP 线路
当一个VM V
on通过 NSX 网络向onHost H
发送数据时,会发生大量重传。我测试了以下许多情况:VM W
Host I
有问题的案例:
V
单次会话发送约 20MBW
:重传约 19MBV
单次会话发送约 50MBW
:重传速度仅为 19MBV
W
在30个并发会话中发送大约2MB :在随机位置重新传输。
H
在这种情况下,我发现在从的数据包转储vmnic
(上行链路)上存在一些数据包顺序不匹配(可能是重新传输的原因) ,并且延迟的数据包是唯一的(以前在转储中没有出现过),但在从vDS
下行链路到 VMV
或sfw
的转储中,它们出现了两次(原始数据包和重新传输的数据包)。所以我认为,问题是发送方堆栈上丢失了一些数据包,尤其是在 VM和主机的物理网卡V
之间。V
H
为了将数据路径/堆栈分成两个扇区并进行独立检查,我使用X
同一主机上的另一个目标虚拟机测试了相同的情况H
。然后我得到了干净的转储,我发现同一主机上的虚拟机之间没有重传问题。(所以我认为,vDS 本身及以上版本没有错误点。)
接下来,我测试了以下案例来检查问题是否与大量数据流量或大量过滤和/或封装有关:
- 启用相同测试
Network I/O Control
:相同问题 - 相同的测试,没有
Network I/O Control
:相同的问题,但有一些差异。 - 相同的测试,但吞吐量降低
N I/O C Limit
:同样的问题 TSO
禁用(e1000 驱动程序)vnic
的相同测试V
:同样的问题- 与
vDS
MTU
9000 相同的测试:同样的问题,但有更多问题
一些不同之处包括:
当Network I/O Control
启用时,首先,RTT
在重新传输之前增加,然后在重新传输完成后,RTT
值处于稳定范围内。
但是当Network I/O Control
禁用时,RTT
重新传输后也会像开始时一样再次增加。
更奇怪的是,虽然我设置MTU
为 9000,但是嵌入 VxLAN 数据包的 UTP 数据包大小都在 1600 以下,所以效果MTU 9000
不受影响。
我遇到了麻烦。能帮我一下吗?谢谢。
编辑 - -
如果虚拟机处于正常、NSX
禁用状态,vDS
则一切都正常。
编辑* OpenvSwitch 上存在类似问题吗?