一種虛擬化服務(wù)器性能的監(jiān)測方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種虛擬化服務(wù)器性能的監(jiān)測方法,包含以下步驟:虛擬機Server端在Server線程池中啟動socket監(jiān)聽,監(jiān)聽客戶端的鏈接請求;測試機Client端使用TCP、UDP或TCP/UDP混合網(wǎng)絡(luò)協(xié)議與虛擬機server端進行Socket通信,執(zhí)行測試任務(wù),搜集測試結(jié)果,并向主控機發(fā)送測試結(jié)果;主控機Manager向客戶端測試機發(fā)送測試命令,搜集并統(tǒng)計分布式測試測試結(jié)果;主控機Manager向虛擬機發(fā)送RPC請求,獲取虛擬機各項性能指標(biāo),并以圖表的形式展示出來。本發(fā)明的監(jiān)測方法及系統(tǒng),實現(xiàn)了虛擬化環(huán)境下的網(wǎng)絡(luò)性能評測,并提供RPC實時遠程監(jiān)控虛擬機各項操作系統(tǒng)性能指標(biāo)。
【專利說明】一種虛擬化服務(wù)器性能的監(jiān)測方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及虛擬服務(wù)器領(lǐng)域,特別涉及一種虛擬化服務(wù)器性能的監(jiān)測方法及系 統(tǒng)。
【背景技術(shù)】
[0002] 近年來隨著計算機硬件的發(fā)展使得功能強大而相對便宜的多處理器服務(wù)器成為 了主流,但在許多情況下,這些硬件的性能都不能得到充分的利用,而近年來隨著多核心處 理器的普及,也使得這種不充分性更加嚴(yán)重,這使得業(yè)界對虛擬化技術(shù)越來越重視。
[0003] 虛擬化(Virtualization)技術(shù)起源于20世紀(jì)60年代的IBM大型機系統(tǒng),在70 年代的System 370系列中逐漸流行起來,這些機器通過虛擬機監(jiān)控器(Virtual Machine Monitor,VMM)在物理硬件之上生成許多可以運行獨立操作系統(tǒng)軟件的虛擬機(Virtual Machine)實例。虛擬化環(huán)境提供了一個軟件層,使得用戶能夠在同一個物理服務(wù)器內(nèi)創(chuàng)建 多個獨立的虛擬機,同時運行多個虛擬機雖然會有一些虛擬化方面的開銷,但卻可以使得 一臺服務(wù)器得到更高的使用率。雖然這些虛擬機的基礎(chǔ)物理資源是共享的,但每個虛擬機 完全獨立的,并執(zhí)行一個單獨的操作系統(tǒng)和單獨的應(yīng)用軟件。虛擬化作為能充分利用服務(wù) 器性能的技術(shù)現(xiàn)在已經(jīng)是一個不可逆轉(zhuǎn)的趨勢,通過不同的虛擬化技術(shù),可以有效地降低 物理服務(wù)器數(shù)量,而降低物理服務(wù)器的數(shù)量實際上也相應(yīng)降低了服務(wù)器成本。[20] [21]文 獻中利用虛擬化技術(shù)設(shè)計了自動化性能測試框架,該測試工具將負載生成器裝載在不同的 分散的虛擬機上面,從而有效地提高了測試效率和提升了負載壓力,為軟件性能測試帶來 很大的方便,降低測試成本。同時,通過虛擬化,客戶還達到了改進服務(wù)器資源的利用率的 效果[6]。而且現(xiàn)在計算機越來越快的計算速度和更加強大靈活的虛擬化技術(shù)也為虛擬化 的應(yīng)用創(chuàng)造了更多的機會,但如何衡量服務(wù)器虛擬化性能卻是一個難題[2]。
[0004] 傳統(tǒng)的服務(wù)器基準(zhǔn)測試僅側(cè)重于對單一工作量的檢驗,而無法獲取支持多個虛擬 機系統(tǒng)的性能或者是在同一個服務(wù)器上同時支持多個工作量時服務(wù)器的性能。一個更為 恰當(dāng)?shù)奶摂M機基準(zhǔn)測試應(yīng)該使用運行于多個操作系統(tǒng)上的現(xiàn)實且多樣的工作量對服務(wù)器 的性能加以檢驗,而且該基準(zhǔn)測試應(yīng)該產(chǎn)生一個易于理解的指標(biāo)[2]。標(biāo)準(zhǔn)性能評測公司 (standard performance evaluation corporation, SPEC)在 2006 年底成立了一個委員會 專門研究虛擬化解決方案評測方法[8]。但是無論是在學(xué)術(shù)界還是在工業(yè)界,對于什么樣的 方法是評測虛擬化解決方案的最好方法,一直沒有達成共識[4]。
[0005] 這些分歧的原因是由虛擬化本身的技術(shù)特征所決定的:
[0006] 首先虛擬化是一個廣義的術(shù)語,不同的應(yīng)用領(lǐng)域代表著不同的含義。在計算機科 學(xué)領(lǐng)域中,虛擬化代表著對計算資源的抽象,而不僅僅局限于虛擬機的概念。一般來說虛擬 化技術(shù)主要分為以下幾個大類[1]:
[0007] 1)平臺虛擬化(Platform Virtualization),針對計算機和操作系統(tǒng)的虛擬化;
[0008] 2)資源虛擬化(Resource Virtualization),針對特定的系統(tǒng)資源的虛擬化,比如 內(nèi)存、存儲、網(wǎng)絡(luò)資源等。
[0009] 3)應(yīng)用程序虛擬化(Application Virtualization),包括仿真、模擬、解釋技術(shù) 等。
[0010] 其次,平臺虛擬化技術(shù)又可以細分為全虛擬化、部分虛擬化、硬件輔助虛擬化等 [3]。
[0011] 全虛擬化是指虛擬機模擬了完整的底層硬件,包括處理器、物理內(nèi)存、時鐘、夕卜 設(shè)等,使得為原始硬件設(shè)計的操作系統(tǒng)或其它系統(tǒng)軟件完全不做任何修改就可以在虛 擬機中運行。操作系統(tǒng)與真實硬件之間的交互可以看成是通過一個預(yù)先規(guī)定的硬件 接口進行的,全虛擬化VMM以完整模擬硬件的方式提供全部接口,比較典型的代表有 Vmware, VirtualBox 等。
[0012] 部分虛擬化只模擬部分底層硬件,僅僅提供了對關(guān)鍵性計算組件或者指令集的模 擬,因此客戶機操作系統(tǒng)不做修改是無法在虛擬機中運行的,其它程序可能也需要進行修 改,比較流行的局部虛擬化VMM有Xen,Hyper-V。
[0013] 由此可見全虛擬化和部分虛擬化對虛擬機本身的整體性能也會有不同的影響,見 文獻[5]。杜春陽[6]等人通過NPB的對稱多處理性能表現(xiàn)測試比對了幾種不同的虛擬化 技術(shù)在高性能計算系統(tǒng)和集群技術(shù)中的性能表現(xiàn),基于NPB在單節(jié)點上測試了串行和并行 性能,并與原生態(tài)的NPB基準(zhǔn)進行比對,得出了沒有哪一種虛擬化技術(shù)可以完美的達到原 生系統(tǒng)的性能的結(jié)論以及粗略地分析了不同的VMM在不同標(biāo)準(zhǔn)中的性能表現(xiàn)。但文中測試 基準(zhǔn)來源于流體動力學(xué)應(yīng)用領(lǐng)域的軟件,并不具有普遍性和代表性。
[0014] 因此,針對具體的企業(yè)應(yīng)用的不同選擇合適的虛擬機測試方法是很有研究意義和 實用價值的。
[0015] 盡管虛擬機以其在分區(qū),隔離,和封裝上的技術(shù)優(yōu)勢在很多領(lǐng)域都得到了廣泛的 應(yīng)用[7],但虛擬機在物理機中的運行仍會消耗部分的物理資源。虛擬機是對真實計算環(huán)境 的抽象和模擬,VMM需要為每個虛擬機分配一套數(shù)據(jù)結(jié)構(gòu)來管理它們狀態(tài),包括虛擬處理器 的全套寄存器,物理內(nèi)存的使用情況,虛擬設(shè)備的狀態(tài)等等。VMM調(diào)度虛擬機時,將其部分狀 態(tài)恢復(fù)到主機系統(tǒng)中。并非所有的狀態(tài)都需要恢復(fù),例如主機CR3寄存器中存放的是VMM 設(shè)置的頁表物理地址,而不是Guest OS設(shè)置的值。主機處理器直接運行Guest OS的機器 指令,由于Guest OS運行在低特權(quán)級別,當(dāng)訪問主機系統(tǒng)的特權(quán)狀態(tài)(如寫GDT寄存器) 時,權(quán)限不足導(dǎo)致主機處理器產(chǎn)生異常,將運行權(quán)自動交還給VMM。VMM可能需要先將該虛 擬機的當(dāng)前狀態(tài)寫回到狀態(tài)數(shù)據(jù)結(jié)構(gòu)中,分析虛擬機被掛起的原因,然后代表Guest OS執(zhí) 行相應(yīng)的特權(quán)操作。最后VMM將運行權(quán)還給Guest 0S,Guest OS從上次被中斷的地方繼續(xù) 執(zhí)行,或處理VMM陷入的虛擬中斷和異常。由此可見大部分情況下,VMM需要經(jīng)過復(fù)雜的流 程才能完成原本簡單的操作,這對運行虛擬機中的應(yīng)用系統(tǒng)整體性能會產(chǎn)生很大的影響。
[0016] 企業(yè)或者科研機構(gòu)在面對種類繁多、各有特點的虛擬化技術(shù)時,往往比較關(guān)注虛 擬化技術(shù)的性能問題。首先,虛擬化的各種技術(shù)實現(xiàn)提供的性能是否存在很大的差異;其 次,應(yīng)用程序運行在虛擬機上與直接運行在物理機上性能上的差異有多少。
[0017] Lorenzo Martignoni [9]等人通過分別在物理機和虛擬機環(huán)境下的用戶態(tài)和核心 態(tài)兩種運行模式進行基于特殊協(xié)議的模糊測試和差異性分析來比較不同的虛擬機與物理 機之間的不同,但這種測試方法重心更多地放在了物理機和虛擬機功能上面的差異,性能 上的差異較少涉及。
[0018] 由于虛擬機系統(tǒng)使用傳統(tǒng)的存儲模式導(dǎo)致虛擬化磁盤存儲方面存在較差的性能, Dongsheng Yin[10]等人通過對VMware vSphere4. 0虛擬機進行虛實存儲實驗對比,給出了 一種基于SSD和基于共享的RAID陣列的I/O存儲優(yōu)化方案。文中只是針對虛擬機和物理 機的存儲模塊進行了深入研究,著重從虛擬機本身來解決虛擬機存儲性能較差的問題,因 此不能從整體上對虛擬機與物理機進行整體性能分析。
[0019] 通過文獻[11]我們可以看出目前對虛擬機的完整的負載測試的研究不足。Marco A. S. Netto [12]等人使用Loadrunner性能測試工具初步對不同CPU模式下的虛擬機和物理 機負載測試做了嘗試,并進行了詳細的虛實對比。但這種實驗局限在Tomcat小型應(yīng)用和輕 負載條件下的虛實對比,并沒有對高負載條件下物理機和虛擬機的對比,而且實驗條件也 只有Xen這一組條件。
[0020] Jianhua Che [13]等使用 CPU2006、RAMSPEED、Bonnie++等標(biāo)準(zhǔn)機制測試程序?qū)?OpenVZ, Xen和KVM這三種開源的分別采用基于容器(Container-Based)的虛擬化、局部虛 擬化、完全虛擬化策略的VMM工具進行了黑盒測試,其測試指標(biāo)包括了虛擬機的CPU、內(nèi)存、 磁盤10、網(wǎng)絡(luò)和更細致的微操作級別的系統(tǒng)操作上下文切換操作頻率,最后通過測試結(jié)果 數(shù)據(jù)從白盒測試的角度分析其代碼設(shè)計的優(yōu)虐。其中研究角度更多的是站在VMM設(shè)計者的 角度來測試分析的,對改善VMM的設(shè)計提供了較好的建議,但對實際應(yīng)用環(huán)境下的指導(dǎo)意 義有限。
[0021] Fares N. Almari [14]等人對比了 Orcale 數(shù)據(jù)庫在 Orcale VM 和 Vmware ESXi 兩 者虛擬化環(huán)境下的性能課拓展性以驗證市場上Orcale宣稱的OrcaleVm是Vmware ESXi性 能的數(shù)倍的說法是否正確,通過實驗結(jié)果得出選擇虛擬化產(chǎn)品應(yīng)依據(jù)具體的應(yīng)用需求,特 別是數(shù)據(jù)庫的應(yīng)用應(yīng)依據(jù)讀寫帶寬和事務(wù)率的高低來絕對ESXi的種類。但該實驗主要是 針對Orcale數(shù)據(jù)庫這一種數(shù)據(jù)庫的性能對比,具有很大的局限性,并沒有涉及到企業(yè)級應(yīng) 用服務(wù)器負載條件下的性能分析。
[0022] Deshane [15] [17]等人對Xen和KvM的整體性能,隔離性,可拓展性等進行了一些 列的比較,目的是為了給VMM開發(fā)者提供設(shè)計的優(yōu)化建議,為商業(yè)用戶提供選擇虛擬機的 建議。
[0023] WalterS[16]等人用標(biāo)準(zhǔn)的基準(zhǔn)測試程序?qū)Σ煌悇e的VMM進行了詳細的對比, 包括了網(wǎng)絡(luò)部署,SMP性能,文件系統(tǒng)和MPI的可用性等,但該測試的關(guān)注點是高性能(HPC) 計算條件下的虛擬機使用特性比較。
[0024] Daniel Schlosser [18]詳細地比較了 OpenVZ, KVM, Xen v4, VirtualBox, VMware ESXi這5中虛擬機監(jiān)控器在商業(yè)硬件環(huán)境下的網(wǎng)絡(luò)帶寬的性能。
[0025] 虛擬化技術(shù)作為云計算重要的組成部分,Dionisio Leite[19]等人研究了虛擬化 技術(shù)在云環(huán)境下的性能差異,在相同負載的情況下對宿主機和虛擬機進行負載測試,并在 一定條件下量化了 Xen和KVM并行運行時的最大數(shù)量。
[0026] 文獻[22]設(shè)計了微基準(zhǔn)測試框架以測試虛擬機的隔離性。
[0027] 文獻[23]提出了一種單VM場景和多VM場景下的性能測試框架VTestKit以測試 虛擬機的整體性能,由于框架是以一組基準(zhǔn)程序作為標(biāo)準(zhǔn)的,雖然可以針對不停的應(yīng)用可 以動態(tài)添加和修改測試標(biāo)準(zhǔn),但該測試框架仍然是針對VMM本身的一些特性進行評估的。
[0028] 由此,我們可以看出國內(nèi)外對虛擬化性能研究的重點放在了不同VMM之間本身的 性能的評估和比較,虛擬機與物理機之間的對比則局限于某些特定的應(yīng)用,因此虛擬機與 物理機之間的性能對比問題有待于進一步研究。同時由于物理機與虛擬機之間是一對多的 關(guān)系,不同的應(yīng)用,特別是CPU密集型,IO密集型,網(wǎng)絡(luò)密集型的應(yīng)用在不同的組合條件下 對物理資源利用的側(cè)重點是不同的,如何對不同的虛擬機組合在保證整體應(yīng)用性能的條件 最大化地提高物理資源利用率具有很強的實際應(yīng)用價值,而這方面的研究目前尚處于早期 階段。
[0029] 參考文獻:
[0030] [l]http://en. wikipedia. org/wiki/Virtualization
[0031] [2]Makhija VjHerndon BjSmith P, et al. VMmark:A scalable benchmark for virtualized systems[J]. VMware Inc, CA, Tech. Rep. VMware-TR-2006-002,2006.
[0032] [3]Seetharaman SjKrishna Murthy B V S.Test optimization using software virtualization[J]. Software, IEEE, 2006, 23(5):66-69.
[0033] [4]蘭雨晴,宋瀟豫,馬立克,等.系統(tǒng)虛擬化技術(shù)性能評測[J].電信科 學(xué),2010, L
[0034] [5]http://wenku. baidu. com/link ? url = -v2Lnd5M00xRqKpGXkkfLdym9IUA_8e 3DzcqxaD_mc
[0035] Z-Es8prg4gvHTS-sUaPLPh3sfjbPEE0WLGsGX52bnE0aQ2fWEeswE8_mR8SjKylj0
[0036] [6]杜春陽,馬宏,夏軍波.基于通用標(biāo)準(zhǔn)的虛擬化技術(shù)性能檢測與分析[J].通 信技術(shù),2009, 5:061.
[0037] [7]Martignoni L,Paleari R, Fresi Roglia G, et al. Testing system virtual machines[C]. In Proceedings of the 19th international symposium on Software testing and analysis. ACM, 2010:171-182.
[0038] [8]Standard Performance Evaluation Corporation.Spec Virtualization Committee,April 2008
[0039] [9] Testing System Virtual Machines,ISSTA' 10,July 12 - 16, 2010, Trento,Italy. Copyright 2010ACM 978-1-60558-823-0/10/07
[0040] [10]Yin D,Liang J. A research on storage performance optimization of virtual machine[C]. In the 6th International Conference on.IEEE,2011:547-551.
[0041] [ll]Gaisbauer S,Kirschnick J, Edwards N,et al. Vats: Virtualized-aware automated test service[C]. In the Fifth International Conference on. IEEE,2008:93-102.
[0042] [12]Netto M A SjMenon SjVieira H V, et al. Evaluating load generation in virtualized environments for software performance testing[C]. Parallel and Distributed Processing Workshops and Phd Forum(IPDPSW),20IIIEEE International Symposium on.IEEE,2011:993-1000.
[0043] [13]Che J,Yu Y,Shi C,et al. A synthetical performance evaluation of openvz,xen and kvm[C]. Services Computing Conference (APSCC),2010IEEE Asia-Pacific. IEEE,2010:587-594.
[0044] [14]Almari F NjZavarsky PjRuhl R, et al. Performance Analysis of Oracle Database in Virtual Environments[C]. Advanced Information Networking and Applications Workshops (WAINA), 201226th International Conference on.IEEE,2012:1238-1245.
[0045] [15]Deshane T,Shepherd Z,Matthews J,et al. Quantitative comparison of Xen and KVM[J]. Xen Summit,Boston,MA,USA,2008:1-2.
[0046] [16]Chaudhary V,Cha M,Walters J P,et al.A comparison of virtualization technologies for HPC[C]. Advanced Information Networking and Applications, 2008. AINA 2008.22nd International Conference on.IEEE,2008:861-868.
[0047] [17]Tope I E,Zavarsky P,Ruhl R,et al. Performance Evaluation of Oracle VM Server Virtualization Software 64Bit Linux Environment [C]. Security Measurements and Metrics (Metrisec), 201IThird International Workshop on. IEEE,2011:51-57.
[0048] [ 18] Schlosser DjDuelli MjGoll S. Performance comparison of hardware virtualization platforms[M]. NETWORKING 2011.Springer Berlin Heidelberg,2011:393-405.
[0049] [19]Ye K,Che J,Jiang X,et al. vtestkit:A performance benchmarking framework for virtualization environments[C] ? ChinaGrid Conference (ChinaGrid)j2010Fifth Annual. IEEE, 2010:130-136.
[0050] [20]Kim G HjKim Y GjChung K Y. Towards virtualized and automated software performance test architecture[J]. Multimedia Tools and Applications, 2013:1-15.
[0051] [21] Kim G,Moon H,Song G P,et al. Software performance testing scheme using virtualization technology[C]. Ubiquitous Information Technologies&Applications, 2009. ICUTj 09. Proceedings of the 4th International Conference on.IEEE, 2009:1-5.
[0052] [22]Yuan P,Ding C,Cheng L,et al. VITS Test Suit:A Micro-Benchmark for Evaluating Performance Isolation of Virtualization Systems[C]. e-Business Engineering(ICEBE),2010IEEE 7th International Conference on. IEEE, 2010:132-139.
[0053] [23]Ye K,Che J,Jiang X,et al. vtestkit:A performance benchmarking framework for virtuali zat ion environments[C] ? ChinaGr id Conference (ChinaGrid)j2010Fifth Annual. IEEE, 2010:130-136.
【發(fā)明內(nèi)容】
[0054] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種虛擬化服務(wù)器性能的監(jiān) 測方法。
[0055] 本發(fā)明的另一目的在于提供一種虛擬化服務(wù)器性能的監(jiān)測系統(tǒng)。
[0056] 本發(fā)明的目的通過以下的技術(shù)方案實現(xiàn):
[0057] -種虛擬化服務(wù)器性能的監(jiān)測方法,包含以下順序的步驟:
[0058] SI.虛擬機Server端在Server線程池中啟動socket監(jiān)聽,監(jiān)聽客戶端的鏈接請 求;
[0059] S2.測試機Client端使用TCP網(wǎng)絡(luò)協(xié)議、UDP網(wǎng)絡(luò)協(xié)議或TCP/UDP混合網(wǎng)絡(luò)協(xié)議 與虛擬機server端進行Socket通信,執(zhí)行測試任務(wù),搜集測試結(jié)果,并向主控機發(fā)送測試 結(jié)果;
[0060] S3.主控機Manager向客戶端測試機發(fā)送測試命令,搜集并統(tǒng)計分布式測試測試 結(jié)果;
[0061] S4.主控機Manager向虛擬機發(fā)送RPC請求,獲取虛擬機各項性能指標(biāo),并以圖表 的形式展示出來。
[0062] 步驟S3中,所述的搜集并統(tǒng)計分布式測試測試結(jié)果具體為:主控機Manager每隔 3s采集一次客戶端測試機的測試結(jié)果數(shù)據(jù),并將不同的采集數(shù)據(jù)求平均值,統(tǒng)計出當(dāng)前的 Socket傳輸速率。
[0063] 步驟S3中,所述的搜集分布式測試測試結(jié)果具體包含以下步驟:
[0064] a、RPC客戶端根據(jù)目標(biāo)服務(wù)器的IP地址以及portmapper的默認程序端口 111,通 過Socket套接字構(gòu)造 udp請求,發(fā)送請求到目標(biāo)機器的portmapper應(yīng)用程序詢問rstatd 的程序端口號;
[0065] b、portmapper應(yīng)用程序接收到請求后,查詢端口與應(yīng)用程序之間的映射表,并把 rstatd監(jiān)控程序的端口號返回RPC客戶端;
[0066] c、RPC客戶端獲得rstatd程序的端口號后,套接字Socket根據(jù)原目標(biāo)IP地址與 rstatd在端口號重新構(gòu)造新的Udp請求,發(fā)送"請求服務(wù)"至rstatd監(jiān)控程序;
[0067] cURstatd監(jiān)控程序接收到"請求服務(wù)"后,返回當(dāng)前性能計數(shù)器收集的性能數(shù)據(jù)。
[0068] 步驟S4中,所述的獲取虛擬機各項性能指標(biāo),并以圖表的形式展示出來,具體為:
[0069] a、將測試過程中的性能數(shù)據(jù)會保存在DataTable對象中,并通過Linux遠程性能 監(jiān)控獲取的數(shù)據(jù)傳輸實時更新;
[0070] b、當(dāng)測試結(jié)束后,對DataTable中的性能數(shù)據(jù)進行統(tǒng)計匯總,得到最終性能測試 數(shù)據(jù);
[0071] c、然后利用XSL定義數(shù)據(jù)展現(xiàn)的樣式,然后按照一定的規(guī)則把測試數(shù)據(jù)寫到XML 文件中;
[0072] d、最后,通過 System. Xml. Xsl 命名空間下的 XslCompiledTransform 類把 XML 格 式的數(shù)據(jù)文件轉(zhuǎn)化成用戶友好的Html頁面。
[0073] 本發(fā)明的另一目的通過以下的技術(shù)方案實現(xiàn):
[0074] -種虛擬化服務(wù)器性能的監(jiān)測系統(tǒng),包括兩兩相互連接的虛擬機Server端、測試 機Client端、主控機Manager,其中虛擬機Server端在Server線程池中啟動socket監(jiān)聽, 監(jiān)聽客戶端的鏈接請求;測試機Client端使用TCP、UDP等網(wǎng)絡(luò)協(xié)議與虛擬機server端進 行Socket通信,執(zhí)行測試任務(wù),搜集測試結(jié)果,并向主控機發(fā)送測試結(jié)果;主控機Manager 向客戶端測試機發(fā)送測試命令,搜集并統(tǒng)計測試結(jié)果;向虛擬機發(fā)送RPC請求,獲取虛擬機 各項性能指標(biāo),并以圖表的形式展示出來。
[0075] 本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點和有益效果:
[0076] 1、本發(fā)明研究的虛擬化技術(shù)特指平臺虛擬化技術(shù)下的性能評測,通過使用控制程 序(Control Program,也被稱為 Virtual Machine Monitor 或 Hypervisor),隱藏特定計算 平臺的實際物理特性,為用戶提供抽象的、統(tǒng)一的、模擬的計算環(huán)境(稱為虛擬機)。虛擬機 中運行的操作系統(tǒng)被稱為客戶機操作系統(tǒng)(Guest OS),運行虛擬機監(jiān)控器的操作系統(tǒng)被稱 為主機操作系統(tǒng)(Host OS)。
[0077] 2、本發(fā)明重點關(guān)注虛擬化環(huán)境下針對網(wǎng)絡(luò)性能評測的開發(fā)與實現(xiàn),設(shè)計了在物理 機和虛擬機環(huán)境下通用的網(wǎng)絡(luò)性能測試框架。此軟件具有如下特點:支持多網(wǎng)絡(luò)傳輸協(xié)議, 多線程分布式測試,系統(tǒng)性能指標(biāo)遠程實時監(jiān)控。具體包括:
[0078] (1)統(tǒng)計基于VMM的網(wǎng)絡(luò)傳輸速率
[0079] 不同的應(yīng)用所使用的網(wǎng)絡(luò)傳輸協(xié)議不同,因此提供了針對不同的傳輸協(xié)議下的虛 擬機網(wǎng)絡(luò)性能檢測機制,目前支持TCP、UDP和TCP/UDP混合的三種網(wǎng)絡(luò)傳輸方式。
[0080] (2)多線程分布式測試
[0081] 將測試任務(wù)部署到不同的分布式系統(tǒng)中,由Host主機統(tǒng)一管理。每一個測試任務(wù) 支持多線程并行操作,實時統(tǒng)計虛擬機網(wǎng)絡(luò)傳輸性能,并以圖表的方式進行展示。
[0082] (3)系統(tǒng)遠程性能監(jiān)控
[0083] 在測試任務(wù)執(zhí)行過程中,主控機可以對被測試機各項性能指標(biāo)進行實時系統(tǒng)監(jiān) 控,用以輔助評價虛擬機網(wǎng)絡(luò)性能。
【專利附圖】
【附圖說明】
[0084] 圖1為RPC客戶端遠程系統(tǒng)調(diào)用獲取Linux性能參數(shù)的流程圖;
[0085] 圖2為報表數(shù)據(jù)展現(xiàn)處理過程的流程圖;
[0086] 圖3為搜集分布式測試測試數(shù)據(jù)的示意圖;
[0087] 圖4為本發(fā)明所述的一種虛擬化服務(wù)器性能的監(jiān)測系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0088] 下面結(jié)合實施例及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限 于此。
[0089] 一種虛擬化服務(wù)器性能的監(jiān)測方法,包含以下順序的步驟:
[0090] SI.虛擬機Server端在Server線程池中啟動socket監(jiān)聽,監(jiān)聽客戶端的鏈接請 求;
[0091] S2.測試機Client端使用TCP網(wǎng)絡(luò)協(xié)議、UDP網(wǎng)絡(luò)協(xié)議或TCP/UDP混合網(wǎng)絡(luò)協(xié)議 與虛擬機server端進行Socket通信,執(zhí)行測試任務(wù),搜集測試結(jié)果,并向主控機發(fā)送測試 結(jié)果;
[0092] S3.主控機Manager向客戶端測試機發(fā)送測試命令,搜集并統(tǒng)計分布式測試測試 結(jié)果;所述的搜集并統(tǒng)計分布式測試測試結(jié)果具體為:主控機Manager每隔3s采集一次客 戶端測試機的測試結(jié)果數(shù)據(jù),并將不同的采集數(shù)據(jù)求平均值,統(tǒng)計出當(dāng)前的Socket傳輸速 率;
[0093] 如圖3,所述的搜集分布式測試測試結(jié)果具體包含以下步驟:
[0094] a、RPC客戶端根據(jù)目標(biāo)服務(wù)器的IP地址以及portmapper的默認程序端口 111,通 過Socket套接字構(gòu)造 udp請求,發(fā)送請求到目標(biāo)機器的portmapper應(yīng)用程序詢問rstatd 的程序端口號;
[0095] b、portmapper應(yīng)用程序接收到請求后,查詢端口與應(yīng)用程序之間的映射表,并把 rstatd監(jiān)控程序的端口號返回RPC客戶端;
[0096] c、RPC客戶端獲得rstatd程序的端口號后,套接字Socket根據(jù)原目標(biāo)IP地址與 rstatd在端口號重新構(gòu)造新的Udp請求,發(fā)送"請求服務(wù)"至rstatd監(jiān)控程序;
[0097] cURstatd監(jiān)控程序接收到"請求服務(wù)"后,返回當(dāng)前性能計數(shù)器收集的性能數(shù)據(jù);
[0098] 圖3中的(1)、(2)、(3)、(4)分別對應(yīng)上面的分步驟a、b、c、d ;
[0099] S4.主控機Manager向虛擬機發(fā)送RPC請求,獲取虛擬機各項性能指標(biāo),并以圖表 的形式展示出來;
[0100] 如圖2,所述的獲取虛擬機各項性能指標(biāo),并以圖表的形式展示出來,具體為:
[0101] a、將測試過程中的性能數(shù)據(jù)會保存在DataTable對象中,并通過Linux遠程性能 監(jiān)控獲取的數(shù)據(jù)傳輸實時更新;
[0102] b、當(dāng)測試結(jié)束后,對DataTable中的性能數(shù)據(jù)進行統(tǒng)計匯總,得到最終性能測試 數(shù)據(jù);
[0103] c、然后利用XSL定義數(shù)據(jù)展現(xiàn)的樣式,然后按照一定的規(guī)則把測試數(shù)據(jù)寫到XML 文件中;
[0104] d、最后,通過 System. Xml. Xsl 命名空間下的 XslCompiledTransform 類把 XML 格 式的數(shù)據(jù)文件轉(zhuǎn)化成用戶友好的Html頁面。
[0105] 如圖4,一種虛擬化服務(wù)器性能的監(jiān)測系統(tǒng),包括兩兩相互連接的虛擬機Server 端、測試機Client端、主控機Manager,其中虛擬機Server端在Server線程池中啟動 socket監(jiān)聽,監(jiān)聽客戶端的鏈接請求;測試機Client端使用TCP、UDP等網(wǎng)絡(luò)協(xié)議與虛擬機 server端進行Socket通信,執(zhí)行測試任務(wù),搜集測試結(jié)果,并向主控機發(fā)送測試結(jié)果;主控 機Manager向客戶端測試機發(fā)送測試命令,搜集并統(tǒng)計測試結(jié)果;向虛擬機發(fā)送RPC請求, 獲取虛擬機各項性能指標(biāo),并以圖表的形式展示出來。
[0106] 本發(fā)明的監(jiān)測系統(tǒng)通過主控制機管理分布式測試機,向客戶端測試機分配測試任 務(wù);客戶端通過局域網(wǎng)與虛擬機建立連接,執(zhí)行測試任務(wù),并向主控機返回實時測試結(jié)果。 主控制機向vmm虛擬機發(fā)送RPC請求,獲取虛擬機各項性能指標(biāo)。下面結(jié)合圖4對該系統(tǒng) 的各個組成部分進行詳細說明:
[0107] 虛擬機Server端
[0108] 在Server線程池中啟動socket監(jiān)聽,監(jiān)聽客戶端的鏈接請求;啟動操作系統(tǒng) rstat端口監(jiān)控程序(一般Iinux系統(tǒng)默認安裝,如果沒有安裝rstat端口監(jiān)控工具,首先, 需要從官網(wǎng)上下載rstat的Tar壓縮文件。在解壓縮tar文件之后,就可以編譯、配置和安 裝rstat監(jiān)控程序)。通過Linux遠程系統(tǒng)監(jiān)控,針對網(wǎng)絡(luò)性能,主要監(jiān)控如下網(wǎng)絡(luò)性能指 標(biāo),如表1所示:
[0109] 表 1
[0110]
【權(quán)利要求】
1. 一種虛擬化服務(wù)器性能的監(jiān)測方法,其特征在于,包含以下順序的步驟:
51. 虛擬機Server端在Server線程池中啟動socket監(jiān)聽,監(jiān)聽客戶端的鏈接請求;
52. 測試機Client端使用TCP網(wǎng)絡(luò)協(xié)議、UDP網(wǎng)絡(luò)協(xié)議或TCP/UDP混合網(wǎng)絡(luò)協(xié)議與虛擬 機server端進行Socket通信,執(zhí)行測試任務(wù),搜集測試結(jié)果,并向主控機發(fā)送測試結(jié)果;
53. 主控機Manager向客戶端測試機發(fā)送測試命令,搜集并統(tǒng)計分布式測試測試結(jié)果;
54. 主控機Manager向虛擬機發(fā)送RPC請求,獲取虛擬機各項性能指標(biāo),并以圖表的形 式展不出來。
2. 根據(jù)權(quán)利要求1所述的虛擬化服務(wù)器性能的監(jiān)測方法,其特征在于,步驟S3中,所述 的搜集并統(tǒng)計分布式測試測試結(jié)果具體為:主控機Manager每隔3s采集一次客戶端測試機 的測試結(jié)果數(shù)據(jù),并將不同的采集數(shù)據(jù)求平均值,統(tǒng)計出當(dāng)前的Socket傳輸速率。
3. 根據(jù)權(quán)利要求2所述的虛擬化服務(wù)器性能的監(jiān)測方法,其特征在于,步驟S3中,所述 的搜集分布式測試測試結(jié)果具體包含以下步驟: a、 RPC客戶端根據(jù)目標(biāo)服務(wù)器的IP地址以及portmapper的默認程序端口 111,通過 Socket套接字構(gòu)造udp請求,發(fā)送請求到目標(biāo)機器的portmapper應(yīng)用程序詢問rstatd的 程序端口號; b、 portmapper應(yīng)用程序接收到請求后,查詢端口與應(yīng)用程序之間的映射表,并把 rstatd監(jiān)控程序的端口號返回RPC客戶端; c、 RPC客戶端獲得rstatd程序的端口號后,套接字Socket根據(jù)原目標(biāo)IP地址與 rstatd在端口號重新構(gòu)造新的Udp請求,發(fā)送"請求服務(wù)"至rstatd監(jiān)控程序; d、 Rstatd監(jiān)控程序接收到"請求服務(wù)"后,返回當(dāng)前性能計數(shù)器收集的性能數(shù)據(jù)。
4. 根據(jù)權(quán)利要求1所述的虛擬化服務(wù)器性能的監(jiān)測方法,其特征在于,步驟S4中,所述 的獲取虛擬機各項性能指標(biāo),并以圖表的形式展示出來,具體為: a、 將測試過程中的性能數(shù)據(jù)會保存在DataTable對象中,并通過Linux遠程性能監(jiān)控 獲取的數(shù)據(jù)傳輸實時更新; b、 當(dāng)測試結(jié)束后,對DataTable中的性能數(shù)據(jù)進行統(tǒng)計匯總,得到最終性能測試數(shù)據(jù); c、 然后利用XSL定義數(shù)據(jù)展現(xiàn)的樣式,然后按照一定的規(guī)則把測試數(shù)據(jù)寫到XML文件 中; d、 最后,通過System. Xml. Xsl命名空間下的XslCompiledTransform類把XML格式的 數(shù)據(jù)文件轉(zhuǎn)化成用戶友好的Html頁面。
5. -種虛擬化服務(wù)器性能的監(jiān)測系統(tǒng),其特征在于:包括兩兩相互連接的虛擬機 Server端、測試機Client端、主控機Manager,其中虛擬機Server端在Server線程池中啟 動socket監(jiān)聽,監(jiān)聽客戶端的鏈接請求;測試機Client端使用TCP、UDP等網(wǎng)絡(luò)協(xié)議與虛 擬機server端進行Socket通信,執(zhí)行測試任務(wù),搜集測試結(jié)果,并向主控機發(fā)送測試結(jié)果; 主控機Manager向客戶端測試機發(fā)送測試命令,搜集并統(tǒng)計測試結(jié)果;向虛擬機發(fā)送RPC請 求,獲取虛擬機各項性能指標(biāo),并以圖表的形式展示出來。
【文檔編號】G06F9/455GK104407910SQ201410598698
【公開日】2015年3月11日 申請日期:2014年10月29日 優(yōu)先權(quán)日:2014年10月29日
【發(fā)明者】陸璐 申請人:華南理工大學(xué)