Is the default VMware E1000 network interface installed on a virtual machine causing problems with performance or can performance be improved when switching to the VMXNET 3 Virtual NIC?
Generally speaking, it is best practice to use the VMXNET 3 Virtual NIC, unless there is a specific driver or compatibility reason as to why it cannot be used. However, in many cases, the E1000 Virtual NIC has been installed because that is the default selection when creating a new virtual machine.
The E1000 Virtual NIC is a software emulation of an Intel 1GB network card.
This network card is a well-established, commonly available Intel based device that most operating systems provide built in support without the need to install a driver for it to function. Due to this fact, it simplifies setup and generally doesn’t have a noticeable impact on performance.
The potential problem with virtual emulation is just as described; software is replacing the role usually performed by hardware. For virtual machines with high network throughput, this can lead to performance issues where the host’s CPU is required to process what is normally handled by a hardware NIC.
The VMXNET 3 Virtual NIC is a completely virtualised 10GB paravirtualised NIC designed for performance. VMXNET 3 offers jumbo frames, multiqueue support (Receive Side Scaling in Windows), IPv6 offloads, and MSI/MSI-X interrupt delivery.
With this, the device drivers and network processing are integrated with the ESXi hypervisor. That means there is no additional processing required to emulate a NIC on the VM and performance is improved. There is no native VMXNET 3 device driver in some operating systems (versions of Windows like 2008 R2 and earlier and RedHat/CentOS 5), so VMware Tools is required to obtain the driver. It is highly recommended to install VMware Tools on VMs so that shouldn’t be an issue anyway.
I’ve seen several occasions where network performance improved dramatically when an existing E1000 Virtual NIC was replaced with a VMXNET 3 Virtual NIC. Results can vary depending on the operating system running; but I’ve seen as much as a 150% improvement in network throughput per second after switching.
My best advice, as always, is to benchmark your virtual machine before and after switching to see what difference it makes in your environment.