Azure VM network best practices

There are serveral links on the internet that discuss tuning Azure VM network performance across both Windows & Linux VMs, most of all come from Microsoft – so this is is a summary of all the links and all the information available for ways to improve & tweak network performance across Azure VMs.

  • Receive Side Scaling (RSS) – is a network driver technology that enables the efficient distribution of network receive processing across multiple CPUs in multiprocessor systems.
    • RSS can reach higher maximal throughput than a VM without RSS. RSS may be disabled by default in a Windows VM. RSS is always enabled by default in an Azure Linux VM. Linux kernels released since October 2017 include new network optimisations options that enable a Linux VM to achieve higher network throughput.
  • VM Bandwidth
    • Network throughput (or bandwidth) is measured in megabits per second (Mbps).
    • The network bandwidth allocated to each virtual machine is metered on egress (outbound) traffic from the virtual machine regardless of destination.
    • Azure virtual machines must have one, but may have several, network interfaces attached to them. Bandwidth allocated to a virtual machine is the sum of all outbound traffic across all network interfaces attached to a virtual machine. In other words, the allocated bandwidth is per virtual machine, regardless of how many network interfaces are attached to the virtual machine
  • Accelerated networking
    • Accelerated networking enables single root I/O virtualization (SR-IOV) to a VM, greatly improving its networking performance. This high-performance path bypasses the host from the datapath, reducing latency, jitter, and CPU utilization, for use with the most demanding network workloads on supported VM types.
      • While accelerated networking can improve a virtual machine’s throughput, it can do so only up to the virtual machine’s allocated bandwidth.
    • To learn more about Accelerated networking, see Accelerated networking for Windows or Linux virtual machines.
  • Linux Integration Services (LIS)
    • New and existing VMs can benefit from installing the latest Linux Integration Services (LIS). The throughput optimisation is in LIS, starting from 4.2.2-2, although later versions contain further improvements. A set of drivers that enable synthetic device support in supported Linux virtual machines under Hyper-V. See the Details section of this page for a link to more information about the latest Linux Integration Services (LIS) availability and supported distributions
    • LIS has been added to the Linux kernel and is updated for new releases. But Linux distributions based on older kernels may not have the latest enhancements or fixes. Microsoft provides a download containing installable LIS drivers for some Linux installations based on these older kernels. Because distribution vendors include versions of Linux Integration Services, it is best to install the latest downloadable version of LIS, if applicable, for your installation.
  • Several NICs – is it a myth that by adding moe NICs can enhance network performance?
  • Azure compute unit (ACU)

Monitoring

If you still need visability into your Azure VM network performance, use the Azure Network performance monitor is a cloud-based hybrid network monitoring solution that helps you monitor network performance between various points in your network infrastructure.

  • Troubleshoot transient and point-in-time network issues, which are difficult to replicate
  • Monitor loss and latency across various subnets and set alerts

NetworkPerformanceMonitor.jpg

Other Links & further reading

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s