Network performance with VMware paravirtualized VMXNET3 compared to the emulated E1000E and E1000.
In the first article the general difference between the adapter types was explained.
In this article we will test the network throughput in the two most common Windows operating systems today: Windows 2008 R2 and Windows 2012 R2, and see the performance of the VMXNET3 vs the E1000 and the E1000E.
To generate large amounts of network traffic I used the iperf tool running on two virtual machines, one iperf “client” and the other as “server”. I have found that the following iperf settings generates the best combination for network throughput tests on Windows Server:
Server: iperf -s -w 64k -l 128k
Client: iperf -c <SERVER-IP> -P 16 -w 64k -l 128k -t 30
The test was done on HP Proliant Bl460c Gen8 with the virtual machines were running on the same physical host to be able to see the network performance regardless of the physical network connection between physical hosts/blades.
All settings on the E1000, E1000E and VMXNET3 was default. More on possible tweakings of the VMXNET3 card settings will be explained in a later article.
(It shall of course be noted that the following results are just observations from tests on one specific hardware and ESXi configuration, and is not in any way a “scientific” study.)
Test 1: Windows 2008 R2 with the default E1000 adapter
Two Windows 2008 R2 virtual machines, one as iperf server and the other as client, with the test running in 30 seconds.
As noted in the Task Manager view the 1 Gbit link speed was maxed out. A somewhat interesting fact is that even with the emulated E1000 adapter it is possible to use more than what “should” be possible on a 1 Gbit link.
From the iperf client output we can see that we reach a total throughput of 2.65 Gbit per second with the default E1000 virtual adapter.
Test 2: Windows 2008 R2 with the VMXNET3 adapter
The Task Manager view reports utilization around 39% of the 10 Gbit link in the Iperf client VM.
The iperf output shows a total throughput for VMXNET3 of 4.47 Gbit / second over the time the test was conducted.
The VMXNET3 adapter demonstrates almost 70 % better network throughput than the E1000 card on Windows 2008 R2.
Test 3: Windows 2012 R2 with the E1000E adapter
The E1000E is a newer, and more “enhanced” version of the E1000. To the guest operating system it looks like the physical adapter Intel 82547 network interface card.
However, even if it is a newer adapter it did actually deliver lower throughput than the E1000 adapter.
Two virtual machines running Windows 2012 R2 with the iperf tool running as client and server.
E1000E got 1.88 Gbit / sec, which is considerable lower than the 2.65 Gbit/s for the original E1000 on Windows 2008 R2.
Test 4: Windows 2012 R2 with the VMXNET3 adapter
The two Windows 2012 R2 virtual machines now running with VMXNET3 adapter got the following iperf results:
The throughput was 4.66 Gbit/sec, which is very close to the result of VMXNET3 on Windows 2008 R2, but almost 150 % better than the new E1000E.
In summary the VMXNET3 adapter delivers greatly more network throughput performance than both E1000 and E1000E. Also, in at least this test setup the newer E1000E performed actually lower than the older E1000.
The test was done on Windows Server virtual machines and the top throughput of around 4.6 Gbit/sec for the VMXNET3 adapter could be the result of limitations in the TCP implementations. Other operating systems with other TCP stacks might achieve even higher numbers. It shall be noted also that these test was just for the network throughput, but there are of course other factors as well, which might be further discussed in later articles.