










摘" 要:虛擬機是由虛擬化層提供的獨立虛擬計算機系統,其綜合性能對虛擬機的使用至關重要。文章設計高性能模式和性能均衡模式下兩種實驗方案,對基于oVirt的KVM虛擬機的綜合性能進行測試,并對比分析兩種不同模式下虛擬機CPU、內存帶寬、磁盤IO和網絡帶寬的性能表現。實驗結果表明,在高性能模式下虛擬機內存和磁盤IO性能表現相對較優,可為實際應用中規劃合適的虛擬機模式提供依據。
關鍵詞:虛擬化;虛擬機;性能測試;KVM
中圖分類號:TP315" " " 文獻標識碼:A" " " 文章編號:2096-4706(2024)21-0046-05
Comprehensive Performance Test and Analysis of KVM Virtual Machine
MENG Xiaojun, WU Miao, JIN Xiaoxin
(The 30th Institute of CETC, Chengdu" 610041, China)
Abstract: Virtual Machine is an independent virtual computer system provided by the virtualization layer, and its comprehensive performance is very important for the use of Virtual Machine. This paper designs two experimental schemes in high performance mode and performance balance mode, tests the comprehensive performance of KVM Virtual Machine based on oVirt, and compares and analyzes the performance representation of CPU, memory bandwidth, disk IO and network bandwidth of Virtual Machine in two different modes. The experimental results show that the performance of Virtual Machine memory and disk IO is relatively better in high performance mode, which can provide a basis for planning appropriate Virtual Machine mode in practical application.
Keywords: virtualization; Virtual Machine; performance test; KVM
0" 引" 言
虛擬化是資源的邏輯表示,其實現形式是在系統中加入一個虛擬化層,將下層的資源抽象成另一種形式的資源,提供給上層使用。本質是一種資源管理技術,可以讓資源得到更合理的利用,降低運營成本。企業可以根據虛擬化數據中心的規模要求,通過虛擬化及相關技術將已有設備及新增設備進行有效資源整合,使得上層操作系統可以直接運行在虛擬環境上,且多個虛擬機操作系統和資源相互隔離,從而提供更高的資源利用率和靈活性[1]。
隨著計算機和云計算的快速發展,在提高資源利用的同時,對高質量、高效率的虛擬計算機要求越來越高,應用系統性能的好壞將直接影響產品的質量和企業的發展前景,選擇使用更優性能的基礎平臺也更加受到業界的重視,那么如何評估虛擬機的性能至關重要[2-4],評估虛擬機的性能也為虛擬機的研制和應用提供明確的方向。本文通過設計測試方案,從四個方面對虛擬機的性能進行測試:虛擬機CPU、虛擬機內存帶寬、虛擬機磁盤IO和虛擬機網絡帶寬,對比分析基于Ovirt的KVM虛擬機在高性能和性能均衡模式下的性能差異。
1" Ovirt-KVM介紹
Ovirt是RHEV的開源版,分為管理端(Engine)和節點運算端(Node)。Engine通過HTTP協議向外提供HTTP API,用戶可以通過SPICE、VNC或者SSH對虛擬機進行操作;Node負責功能的實現,不涉及虛擬機狀態和策略的實現。
KVM虛擬化[5-6]需要借助VT-x[7]硬件輔助技術,KVM內嵌于內核模式中,模擬處理器和內存以支持虛擬機運行,KVM虛擬化架構如圖1所示。
客戶模式是客戶機(VM)在操作系統中運行的模式,客戶機分為內核模式和用戶模式。用戶模式為用戶提供虛擬機管理的用戶空間工具以及代表用戶執行I/O,QEMU工作在用戶模式。內核模式模擬CPU、內存,實現客戶模式切換,處理從客戶模式的退出,KVM運行在內核模式。也就是KVM驅動提供處理器、內存的虛擬機化以及客戶機I/O的攔截,客戶機的I/O被攔截后,交由QEMU處理。QEMU負責IO的虛擬化,利用接口libkvm調用(ioctl)虛擬機設備接口,內核中管理虛擬化硬件的設備驅動通過/dev/kvm實現,用來分配資源、管理和維護虛擬機。
2" 測試環境
虛擬化平臺的宿主機節點Node通過數據中心—集群的方式進行管理,數據中心支持規劃為高性能和性能均衡模式,虛擬機可以依據數據中心定義的性能模式運行。一個數據中心可以包含一個或多個集群,每個集群可以包含多個主機。數據中心和虛擬機的關系結構如圖2所示。
測試環境使用管理端高可用模式搭建(hosted-engine),不同數據中心模式下虛擬機性能表現不同。高性能模式時,虛擬機運行過程中,內存和磁盤的讀寫數據不會加密。而性能均衡模式,虛擬機運行過程中,內存的關鍵數據通過簽名方式存在,磁盤數據通過加密方式存儲。
在不同性能模擬的數據中心創建虛擬機,安裝相同版本和配置的操作系統,部署相同的業務應用系統。被測虛擬機部署基于tomcat容器的用戶管理系統持續進行用戶信息的新增、修改、查詢和刪除操作。給出性能測試方案如圖3所示,被測對象部署相同的計算機基礎環境,從CPU、內存、磁盤和網絡四個方面進行測試,通過測試結果數據分析虛擬機的性能表現。
實驗中使用的網絡設備、引擎服務器、宿主機節點服務器、虛擬機、物理機等測試設備的配置說明如表1所示。
3" 性能評估及分析
隨著計算機性能的優化和發展,對虛擬機性能分析的手段和視角多種多樣[4,8]。目前基準測試程序[9]是一種業內用來衡量計算機性能指標的方式和手段。
本文對不同數據中心模式的虛擬機性能分析從CPU、內存帶寬、磁盤IO和網絡帶寬四個方面進行實驗,研究不同模式下虛擬機的性能差異,為實際應用時選擇合適的模式提供實驗依據。
配置高性能模式的虛擬機A1,使用Python測試腳本、STREAM 5.10、FIO 3.15和Iperf 3.0測試工具,分別從虛擬機的CPU、內存、磁盤IO和網絡IO四個方面進行性能測試,對比高性能模式和性能均衡模式下,不同虛擬機的性能表現,給出實驗結果。
3.1" CPU處理能力
影響虛擬機CPU運行效率的因素很多,通過指令執行速度法和基準程序法來評估CPU運行能力。指令執行速度通過每秒處理的百萬級機器語言指令數來衡量,實驗中通過編寫腳本,找出固定數量級內的質數,通過處理時間衡量VCPU的處理速度。實驗中虛擬機執行速度法通過Python測試腳本,使用單線程分別找出不同數量(1百萬以內、1千萬以內、1億以內)的質數記錄運行時間,通過耗時來衡量VCPU的運行處理能力,耗時越少其VCPU運行能力越佳?;鶞食绦蚍ㄊ褂胹ysbench測試工具,sysbench的CPU測試時在指定時間內進行多輪次的素數計算。表2為測試工具說明。
高性能(虛擬機A1)和性能均衡模式(虛擬機B1)虛擬機分別運行測試腳本的耗時,通過3次測試取平均值得到測試結果,如表3所示,測試界面如圖4所示。
表4給出sysbench工具的CPU性能測試情況,3次測試取平均值得到測試結果。通過設定不同線程數在給定時間內每秒完成的事件次數(CPU speed)來分析虛擬機性能。實驗中時間參數time設定為2分鐘,線程參數threads設置線程數為1和8,最大質數生成數均設置為默認10 000。
從兩種測試工具測試結果來看,兩種模式下的配置相同的虛擬機CPU性能能力相當,沒有明顯的差異。這是因為性能均衡模式下的虛擬機加密實現磁盤讀取數據加密,和CPU運行性能無關。
3.2" 內存帶寬
STREAM 5.10是一款開源測試內存帶寬性能的基準內存測試工具,測試結果包括四個關鍵操作指標:Copy、Scale、Add和Triad。STREAM算法是某個內存塊之間的數據讀取出來,經過簡單的運算放入另一個內存塊。即內存帶寬是搬運的內存大小除以耗時的結果。
Copy是最簡單的操作,先訪問一個內存單元讀取其中的值,再將值寫入另一個內存單元,有1次寫和1次讀共計2次訪問內存操作。
Scale操作,先從內存單元讀出其中的值,作一個乘法運算,再將得到的結果寫入另一個內存單元,有1次寫和1次讀共計2次訪問內存操作。
Add操作,先從內存單元讀出兩個值,做加法運算,再將得到的結果寫入另一個內存單元中,有2次讀和1次寫共計3次訪問內存操作。
Triad是前面三種的結合,先從內存中讀取一個值,與一個常數相乘得到一個乘積,然后從另一個內存單元中讀取一個值與剛才的乘積結果相加,得到的結果再寫入內存。所以,有2次讀和1次寫共計3次訪問內存操作。
在高性能和性能均衡的不同數據模式下,測試虛擬機A1和虛擬機B1內存的Copy、Scale、Add和Triad四種指標,內存帶寬速度如表5給出測試實驗結果,3次測試取平均值得到測試結果值。
單位時間內,訪存次數越多,得到的帶寬越大;單位時間內,操作越復雜其操作時間就越長,程序運行時間就越長,得到的訪存帶寬就相應減少。因此對橫向分析虛擬機A1的內存帶寬,其內存帶寬在Add操作簡單且訪存次數多,內存帶寬最大,而Scale操作復雜且訪存次數少,內存帶寬小??v向分析不同模式下的虛擬機A1和B1,高性能模式下的虛擬機A1訪問內存在不同指標下帶寬較大,內存性能較優。
3.3" 磁盤IO
磁盤IO性能測試工具選用FIO 3.1,FIO是一個功能強大的磁盤性能測試工具,支持對磁盤進行順序讀寫、隨機讀寫等多種模式測試。本次測試實驗給出異步模式下,塊大小設置為4 KB、文件大小為4 GB時磁盤的讀寫IOPS(磁盤每秒讀寫次數),高性能和性能均衡的數據中心對應的虛擬機A1和虛擬機B1測試結果如表6所示,測試界面如圖5所示。
從表6的測試結果可以看出,高性能和性能均衡數據中心模式下,虛擬機在隨機讀(RandR)、隨機寫(RandW)、順序讀(Read)、順序寫(Write)、隨機讀寫(RandRW-R和RandRW-W)的不同測試項中,高性能模式下的虛擬機A1的磁盤每秒讀寫次數在不同讀寫方式中,相比性能均衡模式的虛擬機B1,虛擬機A1每秒讀寫(I/O)操作的次數均多于虛擬機B1,即高性能模式虛擬機讀寫磁盤速度較優。
3.4" 網絡帶寬
Iperf是一個網絡性能測試工具,測試TCP帶寬質量。本次實驗中使用Iperf 3.0.9版本,在千兆局域網絡環境中,測試高性能和性能均衡模式下,同一節點的不同虛擬機之間(A1和A2)、不同節點的虛擬機之間(A1和B1)、虛擬機和宿主機(A1和NodeA)之間的帶寬傳輸。Iperf測試工具使用客戶端模式啟動,指定TCP窗口大小為1 000 MB,測試時長1分鐘。給出詳細測試結果如表7。
從表7的測試結果得出,局域網環境中,不同數據中心模式的虛擬機在不同測試場景下,網絡帶寬損耗均較少,同一節點的不同虛擬機之間(A1-A2)、不同節點的虛擬機之間(A1-B1)、虛擬機和宿主機(A1-NodeA)之間的帶寬基本都接近千兆??v向對比不同數據中心模式的虛擬機網絡帶寬傳輸,基本相差不大,這是因為數據中心模式對虛擬機網絡傳輸沒有影響
4" 結" 論
本次測試實驗從VCPU運行處理能力、內存帶寬、存盤IO、網絡傳輸帶寬四個方面開展相應的測試實驗,通過對基于Ovirt虛擬化平臺下高性能和性能均衡模式的虛擬機在這四個方面的性能對比測試進行研究,綜合分析得出不同數據中心模式的虛擬機在CPU、內存和磁盤讀寫能力方面的性能表現。高性能模式的虛擬機在內存和磁盤IO方面的性能較好;而性能均衡模式下的虛擬機,虛擬機運行使用加密方式,虛擬機運行過程安全,相比高性能模式下運行的虛擬機效率較低,兼顧了安全和性能的要求,可以說這種模式下虛擬機的安全是以犧牲虛擬機性能為代價?;贠virt的高性能和性能均衡模式下的虛擬機性能測試實驗結果,為用戶在實際應用中選擇不同的虛擬機提供參考。
參考文獻:
[1] MELL P,GRANCE T. The NIST Definition of Cloud Computing [J].ACM Queue: Architecting Tomorrow s Computing,2010,8(5):6-7.
[2] WEI M T,LIN Y S,LEE C R. Performance Optimization for InfiniBand Virtualization on QEMU/KVM [C]//2019 IEEE International Conference on Cloud Computing Technology and Science (CloudCom).Sydney:IEEE,2019:19-26.
[3] CHE J H,SHI C C,YU Y,et al. A Synthetical Performance Evaluation of OpenVZ, Xen and KVM [C]//2010 IEEE Asia-Pacific Services Computing Conference.Hangzhou:IEEE,2010:587-594.
[4] GAO P X,LI H,QU X J,et al. Research on Virtual Machine Performance Test Based on Cloud Platform [C]//2021 IEEE 4th Advanced Information Management, Communicates, Electronic and Automation Control Conference (IMCEC).Chongqing:IEEE,2021:392-395.
[5] KIVITY A,KAMAY Y,LAOR D,et al. kvm: the Linux Virtual Machine Monitor [C]//Proceedings of the Linux Symposium.Ottawa:[s.n.].2007,1:225-230.
[6] CHIRAMMAL H D,MUKHEDKAR P,VETTATHU A. Mastering KVM Virtualization [M].[S.I.]:Packt Publishing,2016:9-13.
[7] 陳文智,姚遠,楊建華,等.Pcanel/V2——基于Intel VT-x的VMM架構 [J].計算機學報,2009(7):1311-1319.
[8] POTDAR A M,NARAYAN D G,KENGOND S,et al. Performance Evaluation of Docker Container and Virtual Machine [J].Procedia Computer Science.2020,171:1419-1428.
[9] 陳文智,姚遠,楊建華,等.Pcanel/V2——基于Intel VT-x的VMM架構 [J].計算機學報,2009(7):1311-1319.
作者簡介:孟小?。?985—),女,漢族,陜西西安人,工程師,碩士,研究方向:網絡通信安全、虛擬化和網絡安全融合軟件系統及其測試。