我有一个千兆网络,最近升级到了 40Gbps。为此,我更换了我的TPLINK切换思科 Nexus 9396PX开关,它有一个模块12x 40G端口。40G 网络互连带有ESXi7的DELL服务器已安装。
问题是我无法达到40Gbps 网络 (~1250 MB/sx 4)。
- 当我在两个虚拟机之间运行时
iperf
,我获得的带宽范围为6 Gbits/秒至 10 Gbits/秒。我从来没能达到 40 Gbits 带宽。 - 当我使用复制文件时,
scp
我的传输速度约为110-120 MB/秒这与理论带宽相差甚远1GB/s x 4 ~ 4G/s适用于40G网络。
最近我发现加密会降低传输速度,因此我设置了 FTP 服务器。使用 FTP 传输速度翻倍。我的传输速率约为240-280 MB/秒。我还更新了最大传输单元到9000在主机和虚拟机上都是如此,但传输速率较低。
有人能帮我识别并解决这个问题吗?我希望交换机中配置的 40G 网络带宽能够反映在虚拟机中,并且传输速度尽可能接近 40G 网络的传输速度(~1250 MB/sx 4)。
这是当前的架构细节:
- 带 40G 模块的 Cisco Nexus 9396PX 交换机
- 4 台 Dell PowerEdge R930 服务器(VMware ESXi7 主机)
- 每台服务器上的 NVME 磁盘
- ESXi7 主机上的 40 Gbps Mellanox NIC
- QSFP+ DAC 电缆用于将服务器连接到交换机
更新
我刚刚又做了 3 次测试。我不能说有什么改进
首次测试
- 在 Switch 中,我检查了服务器接口上的 MTU,发现它没有设置为最大值。我尝试将其设置为 9000,但被拒绝了。它只能设置为1500或者9216。我选择了最高值。
- 仍然在 Switch 中,我固定速度为40G/秒并禁用速度自动协商
- 我从 VCenter 禁用了 ESXi 主机上的速度自动协商。
然后我再次运行测试。这些更改不会影响scp
虚拟机之间的复制速度传输速度(Ubuntu 22.04)。但我注意到从 FTP 服务器下载时速度略有改善(它安装在两个 ubuntu 虚拟机之一上)。
第二次测试
我在安装了 Windows 10 的虚拟机上运行以下测试。
- 我在主机中添加了两个 Windows VM,并配置了最大传输单元设置9000也。
- 我创建了一个共享文件夹,用于在两个 Windows VM 之间进行复制。
当我从复制文件时共享文件夹到本地,速度约为600MB/秒。但是当我从本地复制到共享文件夹时,复制开始大约350MB/秒和速度减少当它达到~30%。
第三次测试
为了进行最后一次测试,我安装了菲利兹拉在其中一个 Windows VM 上从/向 FTP 服务器(在 Ubuntu VM 上)下载文件。
- 下载速度大约450MB/秒当下载开始并且大约~50%它减少到~200MB/秒
- 上传速度约为200MB/秒
答案1
40G 基本上是绑定的 4*10G 连接。要从聚合带宽中获益,您需要同时运行多个 TCP 会话。仅靠一个进程和一个 TCP 会话,您永远无法达到合并估计带宽。您可以在此处阅读一些很好的描述: