Virtual Networking Made Easy with VMware VMXNET3 Driver
VMware VMXNET3 is a para-virtual(Hypervisor aware) network driver, optimized to provide high performance, high throughput, and minimal latency. Over the last two decades, virtualization has revolutionized how computing resources are consumed. While it has made utilization of computing hardware more efficient, it has also made networking complex and latent because of several abstraction layers like a hypervisor, virtual switches, etc.
VMware VMXNET3 network driver is designed and developed to address the network complexities in a virtualized infrastructure. The following Operating Systems support VMXNET3 driver:
- Windows XP or later (32 bit and 64 bit)
- Windows Server 2003 or later (32 bit and 64 bit)
- Red Hat Linux 5 or later
- SUSE Linux 10 and later
- Debian 4 and later
- Ubuntu 7.04 and later
Here we will talk about some key features of the VMXNET3 driver that helps our customers get optimal performance with minimal latency.
1. It’s a para-virtual driver: A para-virtual driver is a high-performance driver that significantly reduces the overhead caused by the emulation of the corresponding physical device( NIC card in this case). Traditional network drivers emulate their physical counter part to send and transmit traffic. This constant emulation could lead to performance-related issues in a VM that generates high traffic like SQL or a web server.In a nutshell, unlike other traditional network drivers, VMXNET3 is aware of the hypervisor and does not require an emulation layer, thereby enhancing the performance by almost 20% and reducing the overall CPU consumption.It is important to note that VMXNET3 does not have a corresponding physical network card and can be installed and enabled by installing VMware Tools. VMXNET3 driver is supported only on VM Hardware Version 7 and above.
2.Multiqueue and Receive Side Scaling (RSS) support: Multiqueue and RSS enhances VM’s network performance by scaling the Transmission Queue (Tx) and Receive Queue (Rx) with the number of vCPUs in a multi-processor VM. Performance bottlenecks may occur when a single vCPU is used to process NIC interrupts, especially in a VM receiving or generating a lot of traffic. Multiple Tx and Rx queues result in the parallel processing of traffic which enhances network performance significantly. VMXNET 3 driver automatically scales the Rx and Tx queues of a VM with the number of vCPUs.Receive Side Scaling (RSS) distributes incoming traffic across different Rx queues, leading to the parallel processing of incoming traffic by multiple vCPUs. RSS mitigates issues such as packet drops caused by an overloaded single vCPU and reduces network latency significantly.
3.Data Path Development Kit (DPDK) Support: As a Poll Mode Driver (PMD), VMXNET3 supports DPDK based applications running in the guest operating system. DPDK significantly accelerates packet processing by by-passing the kernel stack and enables applications to communicate directly with the Network Interface Card (NIC). More information on VMXNET3 and DPDK can be obtained from this link.DPDK based applications are extensively used in Telcos and environments where high-performance and low latency is critical.
Large Receive Offload (LRO) and Transmission Segment Offload (TSO): LRO and TSO reduce overall CPU overhead considerably caused by processing incoming and outgoing traffic in a high throughput network.LRO bundles the incoming packets into larger and fewer packets, which reduces the overall packet processing time and frees up precious CPU cycles. LRO also improves the throughput because of the increased availability of CPU cycles to process more traffic.TSO sends TCP data to the NIC (network interface card) without segmenting the data in software. The segmentation and packet manipulation job (adding TCP, IP, and data link layer headers) is offloaded to the NIC which otherwise CPU would have done, freeing up CPU cycles that other applications can use.
LRO and TSO are enabled by default in VMXNET3 driver.
VMware VMXNET3 driver is developed to optimize network performance in a virtualized infrastructure. VMXNET3 provides several advanced features such as multi-queue support, Receive Side Scaling (RSS), IPv4 and IPv6 offloads, and MSI and MSI-X interrupt delivery, interrupt coalescing algorithm, and Large Receive Offload (LRO). VMware recommends to use VMXNET 3 driver to get the maximum performance.