我有两台物理服务器:
- 两路 Intel E5504 @ 2GHz、24GB RAM、12x32GB Intel X25-E SSD(RAID10)。
- Intel Core2 6400 @ 2.12GHz、3GB RAM、简单的 80GB SATA 驱动器。
两台机器都运行Windows Server 2008 R2现在和10GbitSupermicro AOC-STGN-i2S(实际上它们是英特尔 82599PCIe x4 插槽中有一个带有 Supermicro 标志的 SFP+ 直连双轴电缆。
第二台服务器仅用于测试。
首先,我在第二个上安装了 ESXi,并使用第一个作为数据存储。
我注意到,根据 CrystalDiskMark 的数据,ESX 上的虚拟机仅325MB/秒seq 传输速率(已尝试使用 NFS 和 ISCSI)。
我在本地第一台服务器上运行了同样的测试,结果如下:~1000 MB/秒。我想知道网络链接是否真的会降低 2/3 的速度,所以我更换了 2nd 的硬盘并安装了 Windows Server 2008 R2,并尝试了 Jperf 和 NTTtcp。Jperf 显示400MB/秒NTttcp 显示 4300-4600Mbit/s。Windows 任务管理器显示每个间隔约 600 000 000 字节,相当于4.47 千兆位。
我验证了两端都具有全双工,并尝试在两端打开和关闭巨型帧,但差异仅仅是每个间隔 580 000 000 与 600 000 000 字节。
为什么我看到的吞吐量只有理论最大值 10 千兆位的一半?
附录
NTTtcp 命令行:
ntttcpr -m 6,0,192.168.137.1 -a 6 (receiver)
ntttcps -m 6,0,192.168.137.1 -a 6 (sender)
答案1
我怀疑您的 PCI-e x4 插槽是瓶颈。这些插槽的理论吞吐量应在 16 Gbps 范围内(使 NIC 饱和并有剩余空间),但从控制器的角度来看,这并不总是能很好地实现。
有一个 x8 或更高的插槽,您可以从别的地方偷来测试吗?