zoukankan      html  css  js  c++  java
  • 虚拟网卡性能压测

        本文主要介绍多种场景下,虚拟机网卡的压测及性能对比,根据openstack实际的部署方式,虚拟机网卡压测场景包括 SRIOV(passthrough)、SRIOV+Macvtap(passthrough)、Vlan+Linux bridge、OVS+Linux Bridge,分别从协议类型(TCP/UDP)、Message Size方向压测虚拟机网卡的时延、发包率、吞吐量。

    压测环境

    host1:  服务器型号:IBM x3550m2

                  CPU型号:Intel(R) Xeon(R) CPU*8,每个CPU有4核,共32核

                  内存大小:32GB

                  硬盘大小:SAS 500G*2

                  网卡:Intel 82576 Gigabit (Driver:igb)

    host2:  服务器型号:IBM x3550m2

                  CPU型号:Intel(R) Xeon(R) CPU*8,每个CPU有4核,共32核

                  内存大小:32GB

                  硬盘大小:SAS 500G*2

                  网卡:Intel 82576 Gigabit (Drvier:igb)

    vm1:   vcpu:1

                 内存大小:1GB

                 硬盘大小:sda : 40GB

                 IP:  192.168.20.101/24 (Driver:igbvf/virtio_net)

    虚拟机网卡压测

    在开发环境下压测虚拟机网卡,连接宿主机的端口设置成Trunk,仅允许指定Vlan的数据通过,以至无法直接压测宿主机的物理网卡。为了保证压测正常进行,进出宿主机物理网卡的数据都打上tag(SRIOV指定VF的vlan,Linux bridge连接vlan子接口,OVS设置port的tag)。本次使用netperf工具压测,宿主机host1内创建虚拟机vm1,宿主机host2与vm1互发送数据进行压测,运行python脚本使虚拟机vm1的CPU状态接近饱满, 同时关闭host1、host2、vm1的iptables。

    延时

    虚机CPU处于非饱满状态下压测网卡延时,host1使用netperf 向 vm1发送数据(TCP/UDP),netperf 命令行:netperf -H 192.168.20.101 -t omni -- -d rr -T UDP -O "THROUGHPUT, THROUGHPUT_UNITS, MIN_LATENCY, MAX_LATENCY, MEAN_LATENCY"  ,如下图所示

    压测结果发现同场景下虚拟网卡对不同Message Size的延时差别并不大(可能是因为宿主机直接连到同一台switch), 汇总多次延时的压测结果如下:

    发包率

    虚机CPU处于非饱满状态下压测网卡延时,host1启动150个netserver, vm1同时启动150个netperf进程向host1发数据,直达vm1的CPU饱满状态。运行netperf命令行:netperf -t TCP_RR  -H 192.168.20.101 -l 60 -p 12856 -- -r 64 64 (请求/应答报文为64Bytes), 汇总多次延时的压测结果如下:

     

    吞吐量

    原计划用工具netio压测吞吐量,netio压测吞吐量时vm1的CPU处于非饱满状态,最后选择netperf以多线程脚本向vm1打数据(发包率基础上计算对应Message size的吞吐量)。

     

    注:

    1.压测的虚机网卡driver是 virtio_net,与openstack创建的虚机保持一致,virtio_net的性能远高于配默认的8139cp。

    2.pktgen工具不能压测SRIOV(ptkgen发包时不能绑定到VF,因为pktgen是从内核直接发包,会造成dst_mac的最后一个字节与VF生成的网卡关联,如VF对应eth5则dst_mac则会变为xx:xx:xx:xx:xx:e5)。

    3.引起延时的因素比较多:本地主机与服务器路由跳数,网络带宽,处理带宽。netperf测延时的结果明显比ping的延时低。

     
    后记

    从上面的压测数据得出:

    1.SRIOV性能高于其它场景

    2.SRIOV+Macvtap性能高于Vlan+Linux bridge、OVS+Linux bridge

    3.Vlan+Linux bridge性能高于OVS+Linux bridge

    但是SRIOV也有局限性如特定型号网卡支持、千兆网卡只支持7个VF、不支持迁移。SRIOV+Macvtap可解决热迁移的问题,相对于Vlan+Linux bridge和OVS+Linux bridge有性能有提升,openstack用SRIOV+Macvtap解决SRIOV热迁移的BP还没有实现,Vlan+Linux bridge性能稍高于OVS+Linux bridge。对虚拟机网卡的性能要求特别高同时不考虑迁移,用SRIOV比较合适。对网络管理要求比较高(gre,vxlan),只能用OVS+Linux bridge。

    压测工具

    本次压测尝试了多个压测工具netperf、iperf、netio、pktgen,它们对比情况如下表:

    参考链接:

        http://filwmm1314.blog.163.com/blog/static/2182591920130309833682/

        http://blog.163.com/hlz_2599/blog/static/142378474201341341339314/

        http://blog.csdn.net/kozazyh/article/details/4939694

        https://www.kernel.org/doc/Documentation/networking/pktgen.txt

        http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=402362721&idx=1&sn=4b729bd3678af519aeb174571bdc2d8e&scene=23&srcid=1202K1QgMANMuRjQLwqvZOoV#rd

  • 相关阅读:
    java把集合数据写入txt文档
    eclipse 启动报内存溢出的问题out of memory!
    面向对象基础知识整理
    在不同环境下MD5加密相同字符串,密文不一样的问题
    氮化镓选型
    碳化硅选型
    DSP选型
    FPGA选型
    MCU选型
    正点原子
  • 原文地址:https://www.cnblogs.com/gaozhengwei/p/7101269.html
Copyright © 2011-2022 走看看