服务器 频道

VMware ESX两种虚拟网卡性能对比测试

  【IT168评测中心】在我们的虚拟化系列测试文章中,我们IT168评测中心面对了虚拟应用中的各种问题。其中有一个问题就是,在建立虚拟机的时候,虚拟网卡应该选择哪一个?它们有什么区别?

 
VMware ESX Server提供了两种虚拟网卡:Enhanced vmxnet和Intel E1000

  在比较久的年代,VMware Workstation和VMware GSX Server上提供的是古老的AMD PCNet 10/100Mbps虚拟网卡,其时VMware通过一种类似部分虚拟化的vmxnet优化虚拟网卡的方式提供了10/100/1000Mbps性能,无疑性能更好,然而时过境迁,现在的VMware ESX Server提供了Intel E1000的千兆虚拟网卡,它和vmxnet虚拟网卡哪一种更适合实际应用呢?

  我们通过WebBench的静态页面测试来测试各种环境下的网络性能,在我们以往的测试当中,这个可以吃掉大量的带宽,20多台客户机的负载就可以将一个千兆网卡耗尽。

  测试基于我们实验室的一台DELL PowerEdge 2950服务器,配置了两个Intel 45nm Xeon E5430处理器。

  • WebBench v5.0

  WebBench是针对服务器作为Web Server时的性能进行测试,我们在被测服务器上安装了IIS6.0组件,以提供测试所需的Web服务。在测试中我们开启了网络实验室中的60台客户端,分别使用了WebBench 5.0内置的动态CGI以及静态页面脚本对服务器进行了测试。

  静态测试是由客户端读取预先放置在服务器Web Server下的Web页面(wbtree),这项测试主要考察的是服务器磁盘系统以及网络连接性能。我们使用了实验室中的60台客户端,配合Static_mt.tst多线程静态脚本测试向被测服务器发送请求。

DELL 2950测试平台

主板 DELL
处理器 Xeon E5430 x 2
主频 2.66GHz
FSB 1333MHz
L1容量 64K(Data容量为32K)
L2容量 12MB(共享)
芯片组 Intel 5000X
内存 2GB FBD DDR2 667 SDRAM x 8
无虚拟化:16GB
ESX Server:16GB
虚拟化:8GB
磁盘控制器 LSI Logic MegaRAID SAS 8408ELP
硬盘 Seagate Cheetah 146GB 15K.5 SAS x 3
硬盘设置 RAID 5,条带大小64KB,适应性预读,Cached IO
Windows硬盘设置 主系统分区30GB,次分区50GB,NTFS格式
操作系统 VMware ESX Server 3.5.0 64607
Windows Server 2003 R2 Enterprise x64 Edition SP2
with IIS 6.0
网卡 Broadcom BCM5708C千兆网卡 X 4
虚拟化:VMware vmxnet X 4
虚拟化:Intel E1000 X 4
网卡驱动程序 无虚拟化:Broadcom x64
虚拟化:VMware vmxnet driver
虚拟化:Intel PRO Set 13.0 x64

  我们采用了评测中心的一台DELL 2950服务器,配置了双路Intel 45nm Xeon E5430处理器,频率为2.66GHz,支持SSE4.1指令集,最主要是支持Intel VT技术(Virtualization Techonology),它可以降低虚拟机切换的损耗,从而提升虚拟化应用上的效率。关于硬件级别的虚拟化辅助技术,详细可以参见:从VT-x到VT-d Intel虚拟化技术发展蓝图。服务器还使用了Intel 5000X芯片组,提供24MB的Snoop Filter缓存,这可以提升高负荷时的内存/处理器性能。主操作系统的磁盘系统则是3块15000RPM的Cheetah 15K.5,并通过一块PCIe x8的LSI MegaRAID SAS 8408ELP来组建RAID 5阵列。

  我们使用了4块Broadcom BCM5708C千兆网卡,在没有虚拟化的Windows下使用了Broadcom驱动的Team功能。

  测试未虚拟化的时候,我们安装了Windows Server 2003 R2 x64操作系统,并使用启动参数将可用处理器限制为4个——因为目前VMware ESX Server只支持每个虚拟机最多4个处理器。未虚拟化条件下我们使用了Broadcom驱动的Team功能,将4块Broadcom千兆网卡捆绑为一块高带宽的“网卡”。

  测试虚拟化的时候,我们安装了VMware ESX Server 3.5.0 64607,这是一个推出仅数月的新产品,可以支持包括VT-x、VT-d在内的硬件辅助虚拟化技术,对性能的提升很有帮助。我们在一个292GB的RAID 5阵列上采用默认分配的方式安装了ESX Server 3.5.0,并安装了一个Windows Server 2003 R2 x64,这个虚拟的服务器具有4个处理器和8GB的内存(因为不可能把实际服务器的16GB完全分配给虚拟机)。

 
VMware ESX Server自带的网络链路聚合功能

  VMware ESX Server的Bare-Metal裸操作系统底层支持链路聚合功能,我们当然首先尝试了这个功能……实际表明,至少在我们的平台上,这个功能没有什么效果。


一个虚拟机最多4块虚拟网卡


全部设置为Intel E1000虚拟网卡,在设备管理器里面显示为Intel PRO/1000 MT网卡

  这时我们可以做出这样的虚拟机网络配置:4块Intel E1000虚拟网卡,分别分配到4个实网卡上。

 

  通过Intel的PRO Set驱动,可以实现容错、负载平衡、链路聚合等高级功能。


虚拟化静态Web性能对比

  在单块虚拟网卡的情况下,Intel E1000的方式比vmxnet的方式性能更高,带宽利用上要高出10%~15%以上。我们知道静态Web性能测试就是比拼网络带宽。

  接着我们测试了多虚拟网卡下的性能表现,结果令人沮丧:4块vmxnet虚拟网卡的性能和单块vmxnet的性能表现毫无区别,下图采用的是4块Intel E1000虚拟网卡分别分配到4块Broadcom实网卡上的方式,并利用了Intel Pro Set的链路聚合功能,它和实际无虚拟化下的4块Broadcom网卡链路聚合性能相比较。


Virtual Intel E1000 x4 VS Broadcom x4


Virtual Intel E1000 x4测试过程中的网络占用图

  可以看出,4块Intel E1000虚拟网卡链路聚合可以提供很高的网络带宽。


Virtual Intel E1000 x4 VS Broadcom x4

  我们顺便也作了动态Web性能测试,结果比较奇怪,Intel E1000虚拟网卡在低客户端的情况下性能高约10%~15%,而在28个客户机之后突然开始性能下降,这个现象不正常——就整个绝对性能来说,也不符合4个虚拟处理器的性能表现,我们估计这跟实际的网卡不是Intel网卡而是Broadcom网卡有关。

IT168评测中心观点

  我们的测试表明,就网络带宽上,Intel E1000方式性能更好,不仅单网卡性能比vmxnet方式高10%~15%,而且可以利用链路聚合、负载均衡等高级功能。

  我们也注意到VMware ESX Server使用的是自己的网卡驱动程序,虽然ESX Server底层操作系统和Linux很像,然而驱动程序无法直接共用,因此在不同的网卡的支持程度可能会很有不同。我们认为即使是通过了VMware ESX Server认证的网卡上,也是Intel E1000方式性能更好。

在我们的实验环境下,VMware ESX Server采用Intel E1000网卡提供的带宽更高

0
相关文章