一種虛擬化服務器性能的監測方法及系統的制作方法
【專利摘要】本發明公開了一種虛擬化服務器性能的監測方法,包含以下步驟:虛擬機Server端在Server線程池中啟動socket監聽,監聽客戶端的鏈接請求;測試機Client端使用TCP、UDP或TCP/UDP混合網絡協議與虛擬機server端進行Socket通信,執行測試任務,搜集測試結果,并向主控機發送測試結果;主控機Manager向客戶端測試機發送測試命令,搜集并統計分布式測試測試結果;主控機Manager向虛擬機發送RPC請求,獲取虛擬機各項性能指標,并以圖表的形式展示出來。本發明的監測方法及系統,實現了虛擬化環境下的網絡性能評測,并提供RPC實時遠程監控虛擬機各項操作系統性能指標。
【專利說明】一種虛擬化服務器性能的監測方法及系統
【技術領域】
[0001] 本發明涉及虛擬服務器領域,特別涉及一種虛擬化服務器性能的監測方法及系 統。
【背景技術】
[0002] 近年來隨著計算機硬件的發展使得功能強大而相對便宜的多處理器服務器成為 了主流,但在許多情況下,這些硬件的性能都不能得到充分的利用,而近年來隨著多核心處 理器的普及,也使得這種不充分性更加嚴重,這使得業界對虛擬化技術越來越重視。
[0003] 虛擬化(Virtualization)技術起源于20世紀60年代的IBM大型機系統,在70 年代的System 370系列中逐漸流行起來,這些機器通過虛擬機監控器(Virtual Machine Monitor,VMM)在物理硬件之上生成許多可以運行獨立操作系統軟件的虛擬機(Virtual Machine)實例。虛擬化環境提供了一個軟件層,使得用戶能夠在同一個物理服務器內創建 多個獨立的虛擬機,同時運行多個虛擬機雖然會有一些虛擬化方面的開銷,但卻可以使得 一臺服務器得到更高的使用率。雖然這些虛擬機的基礎物理資源是共享的,但每個虛擬機 完全獨立的,并執行一個單獨的操作系統和單獨的應用軟件。虛擬化作為能充分利用服務 器性能的技術現在已經是一個不可逆轉的趨勢,通過不同的虛擬化技術,可以有效地降低 物理服務器數量,而降低物理服務器的數量實際上也相應降低了服務器成本。[20] [21]文 獻中利用虛擬化技術設計了自動化性能測試框架,該測試工具將負載生成器裝載在不同的 分散的虛擬機上面,從而有效地提高了測試效率和提升了負載壓力,為軟件性能測試帶來 很大的方便,降低測試成本。同時,通過虛擬化,客戶還達到了改進服務器資源的利用率的 效果[6]。而且現在計算機越來越快的計算速度和更加強大靈活的虛擬化技術也為虛擬化 的應用創造了更多的機會,但如何衡量服務器虛擬化性能卻是一個難題[2]。
[0004] 傳統的服務器基準測試僅側重于對單一工作量的檢驗,而無法獲取支持多個虛擬 機系統的性能或者是在同一個服務器上同時支持多個工作量時服務器的性能。一個更為 恰當的虛擬機基準測試應該使用運行于多個操作系統上的現實且多樣的工作量對服務器 的性能加以檢驗,而且該基準測試應該產生一個易于理解的指標[2]。標準性能評測公司 (standard performance evaluation corporation, SPEC)在 2006 年底成立了一個委員會 專門研究虛擬化解決方案評測方法[8]。但是無論是在學術界還是在工業界,對于什么樣的 方法是評測虛擬化解決方案的最好方法,一直沒有達成共識[4]。
[0005] 這些分歧的原因是由虛擬化本身的技術特征所決定的:
[0006] 首先虛擬化是一個廣義的術語,不同的應用領域代表著不同的含義。在計算機科 學領域中,虛擬化代表著對計算資源的抽象,而不僅僅局限于虛擬機的概念。一般來說虛擬 化技術主要分為以下幾個大類[1]:
[0007] 1)平臺虛擬化(Platform Virtualization),針對計算機和操作系統的虛擬化;
[0008] 2)資源虛擬化(Resource Virtualization),針對特定的系統資源的虛擬化,比如 內存、存儲、網絡資源等。
[0009] 3)應用程序虛擬化(Application Virtualization),包括仿真、模擬、解釋技術 等。
[0010] 其次,平臺虛擬化技術又可以細分為全虛擬化、部分虛擬化、硬件輔助虛擬化等 [3]。
[0011] 全虛擬化是指虛擬機模擬了完整的底層硬件,包括處理器、物理內存、時鐘、夕卜 設等,使得為原始硬件設計的操作系統或其它系統軟件完全不做任何修改就可以在虛 擬機中運行。操作系統與真實硬件之間的交互可以看成是通過一個預先規定的硬件 接口進行的,全虛擬化VMM以完整模擬硬件的方式提供全部接口,比較典型的代表有 Vmware, VirtualBox 等。
[0012] 部分虛擬化只模擬部分底層硬件,僅僅提供了對關鍵性計算組件或者指令集的模 擬,因此客戶機操作系統不做修改是無法在虛擬機中運行的,其它程序可能也需要進行修 改,比較流行的局部虛擬化VMM有Xen,Hyper-V。
[0013] 由此可見全虛擬化和部分虛擬化對虛擬機本身的整體性能也會有不同的影響,見 文獻[5]。杜春陽[6]等人通過NPB的對稱多處理性能表現測試比對了幾種不同的虛擬化 技術在高性能計算系統和集群技術中的性能表現,基于NPB在單節點上測試了串行和并行 性能,并與原生態的NPB基準進行比對,得出了沒有哪一種虛擬化技術可以完美的達到原 生系統的性能的結論以及粗略地分析了不同的VMM在不同標準中的性能表現。但文中測試 基準來源于流體動力學應用領域的軟件,并不具有普遍性和代表性。
[0014] 因此,針對具體的企業應用的不同選擇合適的虛擬機測試方法是很有研究意義和 實用價值的。
[0015] 盡管虛擬機以其在分區,隔離,和封裝上的技術優勢在很多領域都得到了廣泛的 應用[7],但虛擬機在物理機中的運行仍會消耗部分的物理資源。虛擬機是對真實計算環境 的抽象和模擬,VMM需要為每個虛擬機分配一套數據結構來管理它們狀態,包括虛擬處理器 的全套寄存器,物理內存的使用情況,虛擬設備的狀態等等。VMM調度虛擬機時,將其部分狀 態恢復到主機系統中。并非所有的狀態都需要恢復,例如主機CR3寄存器中存放的是VMM 設置的頁表物理地址,而不是Guest OS設置的值。主機處理器直接運行Guest OS的機器 指令,由于Guest OS運行在低特權級別,當訪問主機系統的特權狀態(如寫GDT寄存器) 時,權限不足導致主機處理器產生異常,將運行權自動交還給VMM。VMM可能需要先將該虛 擬機的當前狀態寫回到狀態數據結構中,分析虛擬機被掛起的原因,然后代表Guest OS執 行相應的特權操作。最后VMM將運行權還給Guest 0S,Guest OS從上次被中斷的地方繼續 執行,或處理VMM陷入的虛擬中斷和異常。由此可見大部分情況下,VMM需要經過復雜的流 程才能完成原本簡單的操作,這對運行虛擬機中的應用系統整體性能會產生很大的影響。
[0016] 企業或者科研機構在面對種類繁多、各有特點的虛擬化技術時,往往比較關注虛 擬化技術的性能問題。首先,虛擬化的各種技術實現提供的性能是否存在很大的差異;其 次,應用程序運行在虛擬機上與直接運行在物理機上性能上的差異有多少。
[0017] Lorenzo Martignoni [9]等人通過分別在物理機和虛擬機環境下的用戶態和核心 態兩種運行模式進行基于特殊協議的模糊測試和差異性分析來比較不同的虛擬機與物理 機之間的不同,但這種測試方法重心更多地放在了物理機和虛擬機功能上面的差異,性能 上的差異較少涉及。
[0018] 由于虛擬機系統使用傳統的存儲模式導致虛擬化磁盤存儲方面存在較差的性能, Dongsheng Yin[10]等人通過對VMware vSphere4. 0虛擬機進行虛實存儲實驗對比,給出了 一種基于SSD和基于共享的RAID陣列的I/O存儲優化方案。文中只是針對虛擬機和物理 機的存儲模塊進行了深入研究,著重從虛擬機本身來解決虛擬機存儲性能較差的問題,因 此不能從整體上對虛擬機與物理機進行整體性能分析。
[0019] 通過文獻[11]我們可以看出目前對虛擬機的完整的負載測試的研究不足。Marco A. S. Netto [12]等人使用Loadrunner性能測試工具初步對不同CPU模式下的虛擬機和物理 機負載測試做了嘗試,并進行了詳細的虛實對比。但這種實驗局限在Tomcat小型應用和輕 負載條件下的虛實對比,并沒有對高負載條件下物理機和虛擬機的對比,而且實驗條件也 只有Xen這一組條件。
[0020] Jianhua Che [13]等使用 CPU2006、RAMSPEED、Bonnie++等標準機制測試程序對 OpenVZ, Xen和KVM這三種開源的分別采用基于容器(Container-Based)的虛擬化、局部虛 擬化、完全虛擬化策略的VMM工具進行了黑盒測試,其測試指標包括了虛擬機的CPU、內存、 磁盤10、網絡和更細致的微操作級別的系統操作上下文切換操作頻率,最后通過測試結果 數據從白盒測試的角度分析其代碼設計的優虐。其中研究角度更多的是站在VMM設計者的 角度來測試分析的,對改善VMM的設計提供了較好的建議,但對實際應用環境下的指導意 義有限。
[0021] Fares N. Almari [14]等人對比了 Orcale 數據庫在 Orcale VM 和 Vmware ESXi 兩 者虛擬化環境下的性能課拓展性以驗證市場上Orcale宣稱的OrcaleVm是Vmware ESXi性 能的數倍的說法是否正確,通過實驗結果得出選擇虛擬化產品應依據具體的應用需求,特 別是數據庫的應用應依據讀寫帶寬和事務率的高低來絕對ESXi的種類。但該實驗主要是 針對Orcale數據庫這一種數據庫的性能對比,具有很大的局限性,并沒有涉及到企業級應 用服務器負載條件下的性能分析。
[0022] Deshane [15] [17]等人對Xen和KvM的整體性能,隔離性,可拓展性等進行了一些 列的比較,目的是為了給VMM開發者提供設計的優化建議,為商業用戶提供選擇虛擬機的 建議。
[0023] WalterS[16]等人用標準的基準測試程序對不同類別的VMM進行了詳細的對比, 包括了網絡部署,SMP性能,文件系統和MPI的可用性等,但該測試的關注點是高性能(HPC) 計算條件下的虛擬機使用特性比較。
[0024] Daniel Schlosser [18]詳細地比較了 OpenVZ, KVM, Xen v4, VirtualBox, VMware ESXi這5中虛擬機監控器在商業硬件環境下的網絡帶寬的性能。
[0025] 虛擬化技術作為云計算重要的組成部分,Dionisio Leite[19]等人研究了虛擬化 技術在云環境下的性能差異,在相同負載的情況下對宿主機和虛擬機進行負載測試,并在 一定條件下量化了 Xen和KVM并行運行時的最大數量。
[0026] 文獻[22]設計了微基準測試框架以測試虛擬機的隔離性。
[0027] 文獻[23]提出了一種單VM場景和多VM場景下的性能測試框架VTestKit以測試 虛擬機的整體性能,由于框架是以一組基準程序作為標準的,雖然可以針對不停的應用可 以動態添加和修改測試標準,但該測試框架仍然是針對VMM本身的一些特性進行評估的。
[0028] 由此,我們可以看出國內外對虛擬化性能研究的重點放在了不同VMM之間本身的 性能的評估和比較,虛擬機與物理機之間的對比則局限于某些特定的應用,因此虛擬機與 物理機之間的性能對比問題有待于進一步研究。同時由于物理機與虛擬機之間是一對多的 關系,不同的應用,特別是CPU密集型,IO密集型,網絡密集型的應用在不同的組合條件下 對物理資源利用的側重點是不同的,如何對不同的虛擬機組合在保證整體應用性能的條件 最大化地提高物理資源利用率具有很強的實際應用價值,而這方面的研究目前尚處于早期 階段。
[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]蘭雨晴,宋瀟豫,馬立克,等.系統虛擬化技術性能評測[J].電信科 學,2010, L
[0034] [5]http://wenku. baidu. com/link ? url = -v2Lnd5M00xRqKpGXkkfLdym9IUA_8e 3DzcqxaD_mc
[0035] Z-Es8prg4gvHTS-sUaPLPh3sfjbPEE0WLGsGX52bnE0aQ2fWEeswE8_mR8SjKylj0
[0036] [6]杜春陽,馬宏,夏軍波.基于通用標準的虛擬化技術性能檢測與分析[J].通 信技術,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.
【發明內容】
[0054] 本發明的目的在于克服現有技術的缺點與不足,提供一種虛擬化服務器性能的監 測方法。
[0055] 本發明的另一目的在于提供一種虛擬化服務器性能的監測系統。
[0056] 本發明的目的通過以下的技術方案實現:
[0057] -種虛擬化服務器性能的監測方法,包含以下順序的步驟:
[0058] SI.虛擬機Server端在Server線程池中啟動socket監聽,監聽客戶端的鏈接請 求;
[0059] S2.測試機Client端使用TCP網絡協議、UDP網絡協議或TCP/UDP混合網絡協議 與虛擬機server端進行Socket通信,執行測試任務,搜集測試結果,并向主控機發送測試 結果;
[0060] S3.主控機Manager向客戶端測試機發送測試命令,搜集并統計分布式測試測試 結果;
[0061] S4.主控機Manager向虛擬機發送RPC請求,獲取虛擬機各項性能指標,并以圖表 的形式展示出來。
[0062] 步驟S3中,所述的搜集并統計分布式測試測試結果具體為:主控機Manager每隔 3s采集一次客戶端測試機的測試結果數據,并將不同的采集數據求平均值,統計出當前的 Socket傳輸速率。
[0063] 步驟S3中,所述的搜集分布式測試測試結果具體包含以下步驟:
[0064] a、RPC客戶端根據目標服務器的IP地址以及portmapper的默認程序端口 111,通 過Socket套接字構造 udp請求,發送請求到目標機器的portmapper應用程序詢問rstatd 的程序端口號;
[0065] b、portmapper應用程序接收到請求后,查詢端口與應用程序之間的映射表,并把 rstatd監控程序的端口號返回RPC客戶端;
[0066] c、RPC客戶端獲得rstatd程序的端口號后,套接字Socket根據原目標IP地址與 rstatd在端口號重新構造新的Udp請求,發送"請求服務"至rstatd監控程序;
[0067] cURstatd監控程序接收到"請求服務"后,返回當前性能計數器收集的性能數據。
[0068] 步驟S4中,所述的獲取虛擬機各項性能指標,并以圖表的形式展示出來,具體為:
[0069] a、將測試過程中的性能數據會保存在DataTable對象中,并通過Linux遠程性能 監控獲取的數據傳輸實時更新;
[0070] b、當測試結束后,對DataTable中的性能數據進行統計匯總,得到最終性能測試 數據;
[0071] c、然后利用XSL定義數據展現的樣式,然后按照一定的規則把測試數據寫到XML 文件中;
[0072] d、最后,通過 System. Xml. Xsl 命名空間下的 XslCompiledTransform 類把 XML 格 式的數據文件轉化成用戶友好的Html頁面。
[0073] 本發明的另一目的通過以下的技術方案實現:
[0074] -種虛擬化服務器性能的監測系統,包括兩兩相互連接的虛擬機Server端、測試 機Client端、主控機Manager,其中虛擬機Server端在Server線程池中啟動socket監聽, 監聽客戶端的鏈接請求;測試機Client端使用TCP、UDP等網絡協議與虛擬機server端進 行Socket通信,執行測試任務,搜集測試結果,并向主控機發送測試結果;主控機Manager 向客戶端測試機發送測試命令,搜集并統計測試結果;向虛擬機發送RPC請求,獲取虛擬機 各項性能指標,并以圖表的形式展示出來。
[0075] 本發明與現有技術相比,具有如下優點和有益效果:
[0076] 1、本發明研究的虛擬化技術特指平臺虛擬化技術下的性能評測,通過使用控制程 序(Control Program,也被稱為 Virtual Machine Monitor 或 Hypervisor),隱藏特定計算 平臺的實際物理特性,為用戶提供抽象的、統一的、模擬的計算環境(稱為虛擬機)。虛擬機 中運行的操作系統被稱為客戶機操作系統(Guest OS),運行虛擬機監控器的操作系統被稱 為主機操作系統(Host OS)。
[0077] 2、本發明重點關注虛擬化環境下針對網絡性能評測的開發與實現,設計了在物理 機和虛擬機環境下通用的網絡性能測試框架。此軟件具有如下特點:支持多網絡傳輸協議, 多線程分布式測試,系統性能指標遠程實時監控。具體包括:
[0078] (1)統計基于VMM的網絡傳輸速率
[0079] 不同的應用所使用的網絡傳輸協議不同,因此提供了針對不同的傳輸協議下的虛 擬機網絡性能檢測機制,目前支持TCP、UDP和TCP/UDP混合的三種網絡傳輸方式。
[0080] (2)多線程分布式測試
[0081] 將測試任務部署到不同的分布式系統中,由Host主機統一管理。每一個測試任務 支持多線程并行操作,實時統計虛擬機網絡傳輸性能,并以圖表的方式進行展示。
[0082] (3)系統遠程性能監控
[0083] 在測試任務執行過程中,主控機可以對被測試機各項性能指標進行實時系統監 控,用以輔助評價虛擬機網絡性能。
【專利附圖】
【附圖說明】
[0084] 圖1為RPC客戶端遠程系統調用獲取Linux性能參數的流程圖;
[0085] 圖2為報表數據展現處理過程的流程圖;
[0086] 圖3為搜集分布式測試測試數據的示意圖;
[0087] 圖4為本發明所述的一種虛擬化服務器性能的監測系統的結構示意圖。
【具體實施方式】
[0088] 下面結合實施例及附圖對本發明作進一步詳細的描述,但本發明的實施方式不限 于此。
[0089] 一種虛擬化服務器性能的監測方法,包含以下順序的步驟:
[0090] SI.虛擬機Server端在Server線程池中啟動socket監聽,監聽客戶端的鏈接請 求;
[0091] S2.測試機Client端使用TCP網絡協議、UDP網絡協議或TCP/UDP混合網絡協議 與虛擬機server端進行Socket通信,執行測試任務,搜集測試結果,并向主控機發送測試 結果;
[0092] S3.主控機Manager向客戶端測試機發送測試命令,搜集并統計分布式測試測試 結果;所述的搜集并統計分布式測試測試結果具體為:主控機Manager每隔3s采集一次客 戶端測試機的測試結果數據,并將不同的采集數據求平均值,統計出當前的Socket傳輸速 率;
[0093] 如圖3,所述的搜集分布式測試測試結果具體包含以下步驟:
[0094] a、RPC客戶端根據目標服務器的IP地址以及portmapper的默認程序端口 111,通 過Socket套接字構造 udp請求,發送請求到目標機器的portmapper應用程序詢問rstatd 的程序端口號;
[0095] b、portmapper應用程序接收到請求后,查詢端口與應用程序之間的映射表,并把 rstatd監控程序的端口號返回RPC客戶端;
[0096] c、RPC客戶端獲得rstatd程序的端口號后,套接字Socket根據原目標IP地址與 rstatd在端口號重新構造新的Udp請求,發送"請求服務"至rstatd監控程序;
[0097] cURstatd監控程序接收到"請求服務"后,返回當前性能計數器收集的性能數據;
[0098] 圖3中的(1)、(2)、(3)、(4)分別對應上面的分步驟a、b、c、d ;
[0099] S4.主控機Manager向虛擬機發送RPC請求,獲取虛擬機各項性能指標,并以圖表 的形式展示出來;
[0100] 如圖2,所述的獲取虛擬機各項性能指標,并以圖表的形式展示出來,具體為:
[0101] a、將測試過程中的性能數據會保存在DataTable對象中,并通過Linux遠程性能 監控獲取的數據傳輸實時更新;
[0102] b、當測試結束后,對DataTable中的性能數據進行統計匯總,得到最終性能測試 數據;
[0103] c、然后利用XSL定義數據展現的樣式,然后按照一定的規則把測試數據寫到XML 文件中;
[0104] d、最后,通過 System. Xml. Xsl 命名空間下的 XslCompiledTransform 類把 XML 格 式的數據文件轉化成用戶友好的Html頁面。
[0105] 如圖4,一種虛擬化服務器性能的監測系統,包括兩兩相互連接的虛擬機Server 端、測試機Client端、主控機Manager,其中虛擬機Server端在Server線程池中啟動 socket監聽,監聽客戶端的鏈接請求;測試機Client端使用TCP、UDP等網絡協議與虛擬機 server端進行Socket通信,執行測試任務,搜集測試結果,并向主控機發送測試結果;主控 機Manager向客戶端測試機發送測試命令,搜集并統計測試結果;向虛擬機發送RPC請求, 獲取虛擬機各項性能指標,并以圖表的形式展示出來。
[0106] 本發明的監測系統通過主控制機管理分布式測試機,向客戶端測試機分配測試任 務;客戶端通過局域網與虛擬機建立連接,執行測試任務,并向主控機返回實時測試結果。 主控制機向vmm虛擬機發送RPC請求,獲取虛擬機各項性能指標。下面結合圖4對該系統 的各個組成部分進行詳細說明:
[0107] 虛擬機Server端
[0108] 在Server線程池中啟動socket監聽,監聽客戶端的鏈接請求;啟動操作系統 rstat端口監控程序(一般Iinux系統默認安裝,如果沒有安裝rstat端口監控工具,首先, 需要從官網上下載rstat的Tar壓縮文件。在解壓縮tar文件之后,就可以編譯、配置和安 裝rstat監控程序)。通過Linux遠程系統監控,針對網絡性能,主要監控如下網絡性能指 標,如表1所示:
[0109] 表 1
[0110]
【權利要求】
1. 一種虛擬化服務器性能的監測方法,其特征在于,包含以下順序的步驟:
51. 虛擬機Server端在Server線程池中啟動socket監聽,監聽客戶端的鏈接請求;
52. 測試機Client端使用TCP網絡協議、UDP網絡協議或TCP/UDP混合網絡協議與虛擬 機server端進行Socket通信,執行測試任務,搜集測試結果,并向主控機發送測試結果;
53. 主控機Manager向客戶端測試機發送測試命令,搜集并統計分布式測試測試結果;
54. 主控機Manager向虛擬機發送RPC請求,獲取虛擬機各項性能指標,并以圖表的形 式展不出來。
2. 根據權利要求1所述的虛擬化服務器性能的監測方法,其特征在于,步驟S3中,所述 的搜集并統計分布式測試測試結果具體為:主控機Manager每隔3s采集一次客戶端測試機 的測試結果數據,并將不同的采集數據求平均值,統計出當前的Socket傳輸速率。
3. 根據權利要求2所述的虛擬化服務器性能的監測方法,其特征在于,步驟S3中,所述 的搜集分布式測試測試結果具體包含以下步驟: a、 RPC客戶端根據目標服務器的IP地址以及portmapper的默認程序端口 111,通過 Socket套接字構造udp請求,發送請求到目標機器的portmapper應用程序詢問rstatd的 程序端口號; b、 portmapper應用程序接收到請求后,查詢端口與應用程序之間的映射表,并把 rstatd監控程序的端口號返回RPC客戶端; c、 RPC客戶端獲得rstatd程序的端口號后,套接字Socket根據原目標IP地址與 rstatd在端口號重新構造新的Udp請求,發送"請求服務"至rstatd監控程序; d、 Rstatd監控程序接收到"請求服務"后,返回當前性能計數器收集的性能數據。
4. 根據權利要求1所述的虛擬化服務器性能的監測方法,其特征在于,步驟S4中,所述 的獲取虛擬機各項性能指標,并以圖表的形式展示出來,具體為: a、 將測試過程中的性能數據會保存在DataTable對象中,并通過Linux遠程性能監控 獲取的數據傳輸實時更新; b、 當測試結束后,對DataTable中的性能數據進行統計匯總,得到最終性能測試數據; c、 然后利用XSL定義數據展現的樣式,然后按照一定的規則把測試數據寫到XML文件 中; d、 最后,通過System. Xml. Xsl命名空間下的XslCompiledTransform類把XML格式的 數據文件轉化成用戶友好的Html頁面。
5. -種虛擬化服務器性能的監測系統,其特征在于:包括兩兩相互連接的虛擬機 Server端、測試機Client端、主控機Manager,其中虛擬機Server端在Server線程池中啟 動socket監聽,監聽客戶端的鏈接請求;測試機Client端使用TCP、UDP等網絡協議與虛 擬機server端進行Socket通信,執行測試任務,搜集測試結果,并向主控機發送測試結果; 主控機Manager向客戶端測試機發送測試命令,搜集并統計測試結果;向虛擬機發送RPC請 求,獲取虛擬機各項性能指標,并以圖表的形式展示出來。
【文檔編號】G06F9/455GK104407910SQ201410598698
【公開日】2015年3月11日 申請日期:2014年10月29日 優先權日:2014年10月29日
【發明者】陸璐 申請人:華南理工大學