VMware Communities > VMTN > VMware Serverâ„¢ > VMware Server 1 > Discussions

This Question is Answered

1 "correct" answer available (10 pts) 2 "helpful" answers available (6 pts)
2 Replies Last post: Oct 30, 2007 2:10 AM by Zxinn
Reply

Network performance issues

Oct 24, 2007 3:13 AM

Click to view Zxinn's profile Novice Zxinn 10 posts since
May 30, 2007
Hello.

I want to use VMware Server to split up different services on a small server. Since two of it's main missions will be router/firewall and local file server I won't settle for just any network performance. General CPU load is low on my old server so I'm mostly focused on network speed. I'm having some issues I hope someone could help me with. Any pointers or suggestions as to what I could try is appreaciated.

The motherboard is an Asus M2NBP-VM CSM with onboard nVidia LAN (forcedeth), and I have an additional Intel Gigabit NIC (e1000) installed.
CPU is an Athlon X2 (dual core) at 2.1 GHz.
Host OS is CentOS 5 with PAE kernel (4 GB RAM).
VMware Server 1.0.4 is installed.
Pretty much everything is set to it's default.
Network performance has been measured mainly with iperf and FTP.
Each VM is assigned only one vCPU, and 1-3 vNICs, bridged to either real NIC, or a guest only vSwitch.

The other computers in my network have variying performance levels regarding network speed, but I want to achieve at least a steady 100-150 Mbps both in and out (and this sometimes has to pass from one VM to a routing VM before getting to the real network).

FreeBSD is my main choice of server OS, so it's too bad VMware Server isn't compatible with a FreeBSD host. But my big issue is currently FreeBSD guests. The network performance I get out of a FreeBSD 6.2 or 5.5 guests connected directly to the bridged interface is at the most 80 Mbps in either direction. With a Windows XP guest I get at the very least 100 Mbps with the default 8 kB TCP window in iperf, and more than 150 Mbps with 32 kB TCP window.

Measured from the host directly I reached speeds of over 250 Mbps. This is almost matched with a Linux guest (I tried both CentOS 4.5 and Ubuntu 7).

Internal speeds are horrible as well. Transfers between Linux/Linux or Linux/Windows guests could be considered acceptable, around 150-200 Mbps. But FreeBSD to FreeBSD is 35-70 Mbps.

Running iperf via the loopback interface on the host puts out over 2.5 Gbps. A Linux guest can reach 500 Mbps.

Things I have tried:
  • Turning on and off different offloading capabilities for my NICs on the host with ethtool (however the TCP segmentation offloading, tso, cannot be changed with ethtool for my e1000, and no offloading options exists for my forcedeth NIC).
  • Connecting the computers directly bypassing the physical switch.
  • All three different types of vNICs (vlance, vmxnet, e1000).
  • Three of the four types of virtual networks (bridged, host only, guest only - not NAT).
  • Confirmed achievable network performance in the physical host environment.
  • Different settings for TCP window size.

Things I have yet to try:
  • Disabling the builtin NIC and only using the Intel e1000.
  • ESX reference performance - I'm currently trying to get an evaluation ESX server up and running on the same hardware using a different hdd (and some NFS storage), to see what kind of throughput I will get.

As a side note I would like to point out that I have reached 800+ Mbps in VMware Server 1.0.4 between two guest VMs running CentOS 5 and Windows XP on my laptop (2.0 GHz Core 2 Duo). But the host to guest transfers seem limited to 100-150 Mbps, regardless of using bridged, host only or NAT networks.

Any help, pointers or additional things to try are greatly appreciated.

/Zxinn
Reply Re: Network performance issues Oct 25, 2007 6:34 AM
Click to view Zxinn's profile Novice Zxinn 10 posts since
May 30, 2007
Preliminary tests with FreeBSD 6.2 and CentOS 5 on VMware ESX 3.0.2 completed.

Using the default guest NIC setting (some mix of vlance and vmxnet?) I achieved roughly 70 Mbps network throughput with both CentOS 5 and FreeBSD 6.2. Changing to the e1000 driver improved performance a great deal.

Using the virtual e1000 device I reach between 200 and 400 Mbps both between VMs and to external physical hosts and virtual guests on my laptop running VMware Server 1.0.4.

I have been using the forcedeth interface towards the physical network for these tests. The physical e1000 is currently connected to the service port, and a 100 Mbps switch.

Edit: CPU utilization was misinterpreted. The CPU usage is quite high when testing the network on both VMware Server and ESX.

The ESX test with FreeBSD has been without VMware tools installed. CentOS 5 required the tools for the e1000 driver however.

Now I'm both relieved and confused. This shows that acceptable network performance can be achieved with VMware on my hardware. However, what is so different between VMware's Server and ESX implementations of the e1000, or is there something fundamentally different between my CentOS 5 host and the Red Hat base of ESX?

I wouldn't mind using ESX full-time, but I believe the license required is quite costly so I'd rather find a way to solve the issue using VMware Server.

/Zxinn
Reply Re: Network performance issues Oct 30, 2007 2:10 AM
Click to view Zxinn's profile Novice Zxinn 10 posts since
May 30, 2007
After trying ESX I went back to my CentOS 5 install and tried all different network types again. I still could not achieve more than 70-80 Mbps with vLance of e1000 but with vmxnet I got double or tripple the performance in a FreeBSD 6.2 (and 5.5) guest. However, the vmxnet is highly unstable in FreeBSD 6.2, but appears to be working in FreeBSD 5.5.

So instead I installed CentOS 4.5 over my old CentOS 5 install. Running CentOS 4.5 as host, and with a FreeBSD 5.5 guest I have the following results:
vLance: 150+ Mbps, but not very stable
vmxnet: 200+ Mbps and appears stable
e1000: ~100 Mbps

Why I have such poor performance with the virtual e1000 device in VMware Server, while it works great in ESX, is beyond me.

Bottom line
CentOS 4.5 still appears to be a better pick than CentOS 5 for a VMware Server host.
I should stick with FreeBSD 5.5 for my important guests (maybe try 6.0 or 6.1 as well, but VMware Server is not yet ready for 6.2).

/Zxinn
Actions