[發明專利]基于硬件計數器虛擬化的多虛擬機性能分析方法有效
| 申請號: | 201110004407.8 | 申請日: | 2011-01-11 |
| 公開(公告)號: | CN102073535A | 公開(公告)日: | 2011-05-25 |
| 發明(設計)人: | 金海;袁平鵬;謝夏;蔣海鷗 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F11/36 |
| 代理公司: | 華中科技大學專利中心 42201 | 代理人: | 曹葆青 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 硬件 計數器 虛擬 虛擬機 性能 分析 方法 | ||
技術領域
本發明屬于計算系統虛擬化性能分析領域,具體涉及一個基于硬件計數器虛擬化的多虛擬機性能分析方法,它能夠讓多個虛擬機獨立地進行性能分析。
背景技術
虛擬化技術允許單一物理計算機同時運行多個虛擬機,每一虛擬機上運行自己的操作系統,使得應用程序可以在相互獨立的空間內運行而互不影響。因此,虛擬化技術顯著提高了軟硬件資源的利用率,提高了管理效率,從而節約大量的成本。現在,虛擬化技術得到了許多公司的廣泛關注。據權威研究機構預計,2012年全球將有超過一半的工作負載被虛擬化。
虛擬化技術的廣泛應用引發了對虛擬化環境下性能分析工具的需求。如不同虛擬機里的用戶(如開發人員等)需了解運行在該虛擬機的程序的性能問題,以便優化程序性能及運行環境配置。這都需要對程序運行狀態進行采樣。一種性能分析方法是基于硬件計數器技術。它需要在程序執行過程中,對相應的CPU事件進行統計來分析程序性能。
但硬件計數器是一種專用的寄存器,每個CPU上的硬件計數器數量有限。因此,對于基于硬件計數器的性能分析工具,一次能同時分析的CPU事件有限,而且現有的性能分析工具不能在不同的虛擬機里同時分析不同的事件。因此,不能滿足虛擬化環境下多用戶在不同虛擬機同時使用的需要。基于以上問題,本發明提出了一種基于硬件計數器虛擬化技術的多虛擬機性能分析方法,以解決在不同虛擬機里同時分析不同CPU事件的問題。
發明內容
本發明的目的是提供一種基于硬件計數器虛擬化的多虛擬機性能分析方法,該方法為虛擬環境下的程序性能分析提供很大的便利,并且能較好地保證性能分析的精確度。
本發明提供的一種基于硬件計數器虛擬化的多虛擬機性能分析方法,其特征在于,該方法包括下述步驟:
第1步在特權虛擬機和各客戶虛擬機里均運行一個后臺守護進程,用于監聽用戶啟動、停止性能分析請求;
第2步設置待性能分析的虛擬機要分析的CPU事件信息,包括CPU事件類型、采樣頻率、單元掩碼、是否分析內核層和是否分析用戶層;
第3步判斷單個待性能分析的虛擬機分析的CPU事件數量是否超過硬件計數器的數量,如果是,則提示用戶分析的事件過多,回到第2步;否則進入第4步;
第4步待性能分析的虛擬機向特權虛擬機發出一個啟動信號,將CPU事件信息寫入Xen的一個結構體中;
第5步判斷所有待性能分析的虛擬機分析的CPU事件總數是否超過硬件計數器的數量,如果是,通過硬件計數器虛擬化技術來分時復用硬件計數器,進入第6步;否則,不需要對硬件計數器進行虛擬化,轉入第7步;
第6步內核層對硬件計數器進行虛擬化,以實現硬件計數器的分時復用;當硬件計數器統計的CPU事件發生次數達到采樣頻率時,硬件計數器產生一個中斷,內核層開始采樣,記錄當前程序計數器的值,保存到對應的緩沖區,并將程序計數器的值轉化為有用信息;
第7步重復第6步,直至接收到停止性能分析的信號;
第8步已啟動性能分析的虛擬機停止性能分析,并向特權虛擬機發出一個停止信號,從而將Xen中存儲該虛擬機CPU事件信息的結構體內容清除;
第9步各虛擬機接收到緩沖區的數據后,對這些數據進行分析處理,從而為用戶提供性能信息;
第10步用戶對得到的性能信息進行展現。
目前應用在主流的虛擬化管理軟件里的性能分析工具不能讓多用戶在不同的虛擬機下同時進行分析,而這一想法的實現將為虛擬化環境下的程序性能分析提供很大的便利。同時,分時復用的硬件計數器虛擬化實現方式,能較好地保證分析的精確度。本發明的工作原理是:當多個虛擬機同時進行性能分析并需要占用硬件計數器時,若多個虛擬機分析的CPU事件總數超過硬件計數器的數量時,會對硬件計數器進行虛擬化以滿足要求,否則不對其進行虛擬化。在Xen虛擬機管理器層次通過一個采樣機制來獲取采樣信息(當硬件計數器的計數達到CPU事件的采樣頻率時,記錄當前程序計數器的值),并將這些信息分發到與各個虛擬機對應的緩沖區,最后再由虛擬機用戶層程序進行分析處理,從而得到相應的分析結果及詳細的性能信息。
本發明主要有三個關鍵問題:一是多個虛擬機之間后臺監聽和消息傳遞機制的實現;二是如何實現硬件計數器的虛擬化;三是如何降低其開銷對性能分析精度的影響。具體而言,本發明具有以下技術特點:
(1)本發明采用后臺守護進程監聽各個虛擬機啟動或停止性能分析的請求,使用Xenstore作為多個虛擬機之間的消息傳遞機制;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110004407.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:雙沖程緊湊型壓電直線電機
- 下一篇:一種安裝操作系統的方法、裝置及系統





