💡 Learn more : Accelerated Networking in Azure
This post was brought to you by Kumar Allamraju.
Accelerated Networking provides consistent ultra-low network latency via Azure's in-house programmable hardware and technologies such as SR-IOV. By moving much of Azure's software-defined networking stack off the CPUs and into FPGA-based SmartNICs, compute cycles are reclaimed by end user applications, putting less load on the VM, decreasing jitter and inconsistency in latency.
Please double check the supported operating systems and VM sizes in the following documentation links to check the availability of this feature.
In 3 simple steps, we will learn to enable accelerated networking to an existing VM via Azure CLI. Please make sure Azure CLI is installed in your desktop/laptop. Otherwise use the Azure Cloud shell to execute the following steps.
First stop/deallocate the VM
Once stopped, enable Accelerated Networking on the NIC of your VM:
Restart your VM. It's that simple, isn't it?
Confirm the Mellanox VF device is exposed to the VM with the
lspci command. The returned output is similar to the following output:
0000:00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 03) 0000:00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 01) 0000:00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 0000:00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02) 0000:00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA 0001:00:02.0 Ethernet controller: Mellanox Technologies MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]
vf_rx_packets: 992956 vf_rx_bytes: 2749784180 vf_tx_packets: 2656684 vf_tx_bytes: 1099443970 vf_tx_dropped: 0
Most workloads in Azure will probably never find networking to be the bottleneck. However, some workloads are extreme and need to be able to send or receive data at high speeds with reliable streaming and with lower CPU utilization. If that happens to be your use case, then you should consider enabling Accelerated Networking when creating Linux/Windows virtual machines.