虛擬網卡性能壓測


    本文主要介紹多種場景下,虛擬機網卡的壓測及性能對比,根據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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM