Azure Virtual Machine Network Performance

    Virtual machine support running large-scale fast-growing online software service, network performance is essential. Understand network performance metrics of the virtual machine (including bandwidth, delay, PPS, etc.) and the rational use of not only the design and construction of high-performance, stable, scalable business system, and also avoid unnecessary pit.

 

virtual machine to accelerate network

    Public cloud network has developed rapidly, five years before the virtual machines running network bandwidth is usually only about 1Gbps, 40Gbps can be achieved even now 50-100Gpbs. 2016, Azure announced the accelerated network (AccelNet), by the host processing to be offloaded to network-based field-programmable gate array (FPGA) custom SmartNICs smart card hardware, providing customers with the fastest network in the public cloud, TCP between VM delay can be stably less than 15 microseconds, the throughput capacity of up to 32Gbps.

 

 

 

Compared to non-accelerated network host software defined network (SDN), the advantages of the open acceleration VM network functions:

  1. Low delay / high capacity packet processed (pps): data path bypassing the virtual switch, reducing the time for processing data packets host
  2. Reduce jitter: the number of virtual switch processing strategy depends on the needs of the application and workload of the CPU being processed. The policy enforcement unloaded by hardware to send packets directly to the VM, the instability can be eliminated
  3. Reduce CPU utilization: virtual switch to bypass the host, which reduces network traffic processing CPU usage

 

virtual machine network bandwidth

Azure provide different kinds of type and size of the virtual machine, each virtual machine performance and processing capabilities vary. Because virtual machines hosted on shared hardware, virtual machine network throughput (also known as bandwidth) must be fairly shared, large virtual machine is small relative to the virtual access to a relatively large bandwidth.

Assigned to each virtual machine network bandwidth by outgoing (outbound) flow calculation, regardless of outbound traffic goal it is the same virtual network to another virtual machine, or external Azure, apply the restrictions. Incoming traffic bandwidth limitations and is not directly calculated, but other factors (such as CPU and memory limitations) may affect the virtual machine processing bandwidth capability incoming data. Acceleration is a network designed to improve network performance (including latency, throughput, and CPU utilization) function, it can be improved while the throughput of the virtual machine, but still subject to limit the bandwidth allocated to the virtual machine. Virtual machine may have one or more cards, regardless of the bandwidth allocated to the virtual machine only for virtual machines and the number of NICs, the allocated bandwidth is the sum of all NICs outbound traffic bandwidth.

Such as network bandwidth limitations Standard_D8_v3 (8vCPU / 32G memory) type of virtual machine to 4000Mbps; Standard_D64_v3 (64vCPU / 256G memory) type of virtual machine, which network bandwidth is limited to 30,000 Mbps, the maximum number of NICs to eight. Details VM expected network bandwidth (Mbps) can be found in the official website Description:

https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes-general

 

In general, we can use NTTTCP cross-platform tools to test network bandwidth virtual machine, of course, also be used iperf and other tools. See test method:

https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-bandwidth-testing

 

Below 2 Standard_D8_v3 (OS: Centos) test verifies that the virtual machine as an example of network bandwidth.

 

  1. Create a network of two to accelerate virtual machine, model Standard_D8_v3, operating system Centos 7.5
  2. Installation ntttcp for Linux:
  3. Take one wherein the receiver (Receiver), another one is a transmitter (Sender)
  4. Test bandwidth of 3700Mbps, close to the limit bandwidth 4000Mbps. Note that, the bandwidth limitations Outbound

     

     

     

    Virtual Machine PPS

    PPS,即每秒发送多少个分组数据包,是常用的网络吞吐率的单位,网络性能通常用吞吐率(throughput)这个指标来衡量。

     

    下面以1台加速网络Standard_D8_v3 (OS:Centos )虚拟机,6台Standard_D8_v3 (OS:Centos )陪练虚拟机为例测试入站流量。

    1. 安装Netperf

       

    2. 测试
    3. 测试结果,该虚拟机PPS为165万。需要注意的是,在这里我们看到了两个网卡,其中一个是虚拟机默认网卡(NETVSC),另外一个是SR-IOV 虚拟功能(VF)映射的网卡,二者MAC地址一样,NETSVSC网卡有IP地址。NETVSC网卡也有流量是因为默认透明绑定VF映射的网卡。

       

       

      SR-IOV加速网络的明显优势是降低延迟,更稳定、提高CPU利用率。虽然可以提升PPS,但如果遇到要求超高PPS的需求场景,例如虚拟路由器、防火墙、VPN、负载均衡、DDoS应用等NVA,DPDK将发挥作用。

      DPDK, 数据平面开发包(Data Plane Development Kit),它提供了更快速的用户空间包处理框架,适用于上述网络性能密集型应用程序。DPDK绕过虚拟机内核网络堆栈,消除了上下文切换和中断指令驱动方法,在用户空间以轮询模式驱动程序实现更快的网络包处理。DPDK可以让Azure Linux虚拟机获得更高的PPS。

       

      了解Azure虚拟机网络性能信息和相关限制,可以更好的根据业务场景选择合适的虚拟机类型和构建合适的系统架构。比如要部署一款MMO游戏,每台游戏服务器通常需要几十万PPS和数以万计的TCP/UDP网络并发访问,可以根据Azure虚拟机带宽、网络流、PPS等网络指标以及计算、存储等指标规划每台虚拟机承载的玩家数和计算容量,进而构建可扩展的游戏服务器群,就近部署在Azure全球不同区域让玩家获得无以伦比的流畅体验。

Guess you like

Origin www.cnblogs.com/royang/p/11963390.html
Recommended