我正在使用Iperf和Netperf测试Xen和Hyper-V中V的网络性能.在这两个管理程序中,我发现在不同模式下的Linux来宾VM具有相对较高的性能。即使是完全虚拟化的Linux也比带有PV驱动的Windows客户VM表现出更好的性能。
因此,对于每个虚拟机,我使用回送地址在同一虚拟机上创建客户机-服务器模型。我在所有虚拟机上建立了相同的测试,我没有指定任何缓冲区大小或窗口大小,而是留给工具来决定。
例如,使用以下命令测试TCP连接:
iperf -c 127.0.0.1
或
netperf -H 127.0.0.1
我得到了Iperf在32位环境下对Hyper-V的后续结果:
Linux (开明):18 Gbit/S Linux (未开悟):10.5 Gbit/S Windows (开明):3 Gbit/s (FV+IS):0.5 Gbit/ Windows (未开悟):0.4 Gbit/10.5
管理程序和两个工具都显示了相同的性能,在64位环境中也是如此。
有什么解释吗?!
注意:安装了Integration的FV+IS >>未开明的来宾VM。
发布于 2014-08-27 19:37:04
您的基准测试没有测试两种操作系统的网络性能。
Linux将回送设备实现为纯软件层,没有与实际网络设备的连接。在Windows上,连连接到127.0.0.1地址的回送设备都没有。
所有的测试都可以测量CPU调度和内存带宽的性能。Linux和Windows有非常不同的网络栈,我不确定是否有人会注意在回送设备驱动程序(或Windows内核中的任何等效程序)上进行性能优化。
您所使用的特定应用程序是否通过本地TCP/IP连接传输大量数据?如果是这样的话,这是本地传输数据的最低效的方法之一。
关于实际的网络性能,请注意Windows和Linux有不同的网络堆栈,具有不同的默认设置。您应该研究应用程序将在缓冲区、TCP窗口等方面使用什么,并相应地调整iperf/netperf以模拟该行为。然后在同一台主机上传输不同VM之间的数据,在不同主机上传输VM、VM和物理服务器等,注意网络端口的设置、上行链路的饱和等。
同样,您的测试只是对非优化算法和数据结构进行基准测试,这些算法和数据结构纯粹在软件中运行。
编辑:您可能想了解更多关于Windows 2012和Windows8中回环网络中的改进的信息。
https://serverfault.com/questions/624516
复制相似问题