一種管理虛擬機的設備的方法及設備的製作方法
2023-05-09 06:53:56 2
一種管理虛擬機的設備的方法及設備的製作方法
【專利摘要】本發明實施例提供一種管理虛擬機的設備的方法及設備。涉及計算機領域,解決了現有技術在虛擬機沒有使用設備的情況下,定時器還是保持高精度,造成CPU資源浪費的這一問題。具體方案為:通過獲取所述虛擬機的設備的當前狀態;並根據虛擬機的設備的當前狀態以及預設的虛擬機的設備的狀態與所述定時器頻率的對應關係,將虛擬機的設備的定時器的當前頻率更改為與虛擬機的設備的當前狀態對應的定時器的頻率。本發明用於管理虛擬機的設備。
【專利說明】一種管理虛擬機的設備的方法及設備
【技術領域】
[0001]本發明涉及計算機領域,尤其涉及一種管理虛擬機的設備的方法及設備。
【背景技術】
[0002]虛擬化平臺可以實現一套硬體設備上運行多臺虛擬機。虛擬機的設備為虛擬設備,可以由模擬處理器模擬並且進行相應的管理。模擬處理器可以是宿主機上的一個用戶態進程,每一臺虛擬機擁有一個自己的模擬處理器進程;模擬處理器裡有若干定時器(timer)用來處理虛擬機設備的事件,定時器定期查詢設備是否有事件需要處理來實現對設備事件的響應,定時器的觸發頻率影響著對設備事件的響應實時性。
[0003]一般情況下,模擬處理器裡的定時器根據固定的頻率定期的查詢處理設備事件,如果有事件需處理則進行處理,之後重新進入定時器循環流程,等待下一次定時器到期,重複之前步驟。
[0004]發明人發現現有技術至少存在以下問題:作為用戶態進程,模擬處理器會有資源開銷,當宿主機上虛擬機數量多時,所有模擬處理器的CPU開銷就非常高。現有技術只能根據使用場景,預先設定好定時器頻率,在設備響應精度與模擬處理器進程CPU資源開銷中做權衡取捨。某些對CPU資源要求高的場景下,通過降低虛擬機的設備定時器的頻率,達到降低模擬處理器進程CPU利用率;某些對虛擬機的設備響應時間要求高的場景下,提高虛擬機的設備定時器頻率,減少虛擬機的設備的響應延時。為了保障虛擬機設備能夠得到及時響應,定時器的頻率一般會設置的很高,但是在虛擬機沒有使用設備的情況下,定時器還是保持高精度,造成CPU資源浪費,降低了虛擬機的性能。
【發明內容】
[0005]本發明實施例提供一種管理虛擬機的設備的方法及設備,實現保證虛擬機設備高精度性能體驗同時降低了 CPU的開銷,提高虛擬機性能。
[0006]為達到上述目的,本發明的實施例採用如下技術方案:
[0007]第一方面,提供一種管理虛擬機的設備的方法,包括:
[0008]獲取所述虛擬機的設備的當前狀態;
[0009]根據所述虛擬機的設備的當前狀態以及預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係,將所述虛擬機的設備的定時器的當前頻率更改為與所述虛擬機的設備的當前狀態對應的定時器的頻率。
[0010]在第一種可能的實現方式中,根據第一方面,所述虛擬機的設備的狀態包括:所述虛擬機的設備有事件需要處理,或者,所述虛擬機的設備沒有事件需要處理。
[0011]在第二種可能的實現方式中,根據第一種可能的實現方式,所述預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係包括:所述虛擬機的設備有事件需要處理對應所述定時器的第一頻率;所述虛擬機的設備沒有事件需要處理對應所述定時器的第二頻率;其中,所述第一頻率大於所述第二頻率。[0012]在第三種可能的實現方式中,根據第一方面,所述虛擬機的設備的狀態包括:所述虛擬機的設備即將被使用,或者,所述虛擬機的設備不即將被使用。
[0013]在第四種可能的實現方式中,根據第三種可能的實現方式,所述預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係包括:所述虛擬機的設備即將被使用對應所述定時器的第三頻率;所述虛擬機的設備不即將被使用對應所述定時器的第四頻率;其中,所述第三頻率大於所述第四頻率。
[0014]在第五種可能的實現方式中,根據第三種可能的實現方式或者第四種可能的實現方式,所述獲取所述虛擬機的設備的當前狀態,包括:
[0015]檢測所述虛擬機的設備的當前所處的模式,其中,所述虛擬機的模式與所述虛擬機的設備 對應,每一種模式分別用於指不與所述模式對應的所述虛擬機的設備即將被使用;
[0016]若所述虛擬機的當前所處的模式包含所述虛擬機的設備對應的模式,則判斷所述虛擬機的設備的當前狀態為即將被使用。
[0017]第二方面,提供一種管理虛擬機的設備的設備,包括:
[0018]獲取單元,用於獲取所述虛擬機的設備的當前狀態;
[0019]更改單元,用於根據所述獲取單元獲取的所述虛擬機的設備的當前狀態以及預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係,將所述虛擬機的設備的定時器的當前頻率更改為所述虛擬機的設備的當前狀態對應的定時器的頻率。
[0020]在第一種可能的實現方式中,根據第二方面,所述虛擬機的設備的狀態包括:所述虛擬機的設備有事件需要處理,或者,所述虛擬機的設備沒有事件需要處理。
[0021]在第二種可能的實現方式中,根據第一種可能的實現方式,所述預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係包括:所述虛擬機的設備有事件需要處理對應所述定時器的第一頻率;所述虛擬機的設備沒有事件需要處理對應所述定時器的第二頻率;其中,所述第一頻率大於所述第二頻率。
[0022]在第三種可能的實現方式中,根據第二方面,所述虛擬機的設備的狀態包括:所述虛擬機的設備即將被使用,或者,所述虛擬機的設備不即將被使用。
[0023]在第四種可能的實現方式中,根據第三種可能的實現方式,所述預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係包括:所述虛擬機的設備即將被使用對應所述定時器的第三頻率;所述虛擬機的設備不即將被使用對應所述定時器的第四頻率;其中,所述第三頻率大於所述第四頻率。
[0024]在第五種可能的實現方式中,根據第三種可能的實現方式或者第四種可能的實現方式,所述獲取單元具體用於,
[0025]檢測所述虛擬機的設備的當前所處的模式,其中,所述虛擬機的模式與所述虛擬機的設備 對應,每一種模式分別用於指不與所述模式對應的所述虛擬機的設備即將被使用;
[0026]若所述虛擬機的當前所處的模式包含所述虛擬機的設備對應的模式,則判斷所述虛擬機的設備的當前狀態為即將被使用。
[0027]本發明的實施例提供的管理虛擬機的設備的方法及設備,通過獲取虛擬機的設備的當前狀態;並根據虛擬機的設備的當前狀態以及預設的虛擬機的設備的狀態與定時器頻率的對應關係,將虛擬機的設備的定時器的當前頻率更改為與虛擬機的設備的當前狀態對應的定時器的頻率,從而實現根據虛擬機的設備的當前狀態自動更改虛擬機設備定時器的頻率,從而在保證虛擬機設備高精度性能體驗同時降低了 CPU的開銷,解決了現有技術在虛擬機沒有使用設備的情況下,定時器還是保持高精度,造成CPU資源浪費的缺陷。
【專利附圖】
【附圖說明】
[0028]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0029]圖1為現有技術中的一種管理虛擬機的設備的方法流程示意圖;
[0030]圖2為本發明實施例提供的一種管理虛擬機的設備的方法流程示意圖;
[0031]圖3為本發明實施例提供的另一種管理虛擬機的設備的方法流程示意圖;
[0032]圖4為本發明實施例提供的再一種管理虛擬機的設備的方法流程示意圖;
[0033]圖5為本發明實施例提供的一種管理虛擬機的設備的裝置結構示意圖;
[0034]圖6為本發明實施例提供的一種物理機的結構示意圖。
【具體實施方式】
[0035]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0036]虛擬化平臺可以實現在一套硬體設備上運行多臺虛擬機。一個宿主機上的硬體設備被抽象成資源池,虛擬化平臺把資源池中的設備資源組裝成多臺虛擬機。本發明實施例提供的管理虛擬機的設備的方法可以應用於多種虛擬化平臺,本實施例僅以xen和基於內核的虛擬機(Kernel-based Virtual Machine,簡稱KVM)為例進行說明。
[0037]在xen或KVM虛擬化平臺上,虛擬機的設備為虛擬設備,可以由模擬處理器模擬和管理,例如,虛擬機的設備可以包含模擬處理器模擬的USB滑鼠,U盤等。其中,模擬處理器可以包括qemu,qemu是宿主機上的一個用戶態進程,宿主機上每一臺虛擬機擁有一個自己的qemu進程。參見圖1,為現有技術中一種管理虛擬機的設備的方法流程圖,如圖1所示,現有技術中模擬處理器裡的定時器根據固定的頻率定期的檢測是否有設備事件需要處理(例如N毫秒執行一次),如果有事件需處理則進行處理,之後重新進入定時器循環流程;如果沒有事件需處理則返回定時器循環流程。
[0038]不難理解,定時器的觸發頻率影響著虛擬機的設備對事件響應的實時性。而作為用戶態進程,qemu會有資源開銷,尤其當宿主機上虛擬機數量較多時,所有qemu進程的CPU開銷就不容忽視。而現有技術中模擬處理器裡的定時器根據固定的頻率定期的查詢處理設備事件,如果有事件需處理則進行處理,之後重新進入定時器循環流程。所以導致高性能的設備體驗與虛擬機的設備空閒時qemu進程CPU利用率不能兼顧,例如:對CPU資源要求高的場景下,現有技術一般採用降低虛擬機的設備的定時器頻率以達到降低qemu進程的CPU開銷,但犧牲了虛擬機的設備的響應實時性;在對設備的響應實時性要求高的場景下,現有技術虛擬機的設備的定時器一般使用高頻率,會導致虛擬機的設備空閒時qemu進程的CPU開銷增加。
[0039]為此,一方面,本發明實施例提供一種管理虛擬機的設備的方法,參見圖2,該方法可以包括:
[0040]201:模擬處理器獲取所述虛擬機的設備的當前狀態;
[0041]虛擬機的設備是指與每個虛擬機對應的虛擬設備,例如模擬處理器模擬的鍵盤、滑鼠、串口、USB設備等。
[0042]可選的,模擬處理器,例如qemu,可以對虛擬機的設備進行管理,qemu裡面設置若
幹分別與虛擬機的設備--對應的定時器(timer),定時器分別按照一定頻率定期查詢與
該定時器對應的虛擬機的設備的狀態,用於處理與該定時器對應的虛擬機的設備的事件,例如,與U盤、USB滑鼠等設備對應的定時器可以為USB控制器定時器。
[0043]可選的,虛擬機的設備的狀態可以根據需要進行設置,本發明實施例對於虛擬機的設備的具體的狀態的種類和數量不進行限制。
[0044]例如,虛擬機的設備的狀態可以包括:虛擬機的設備有事件需要處理,或者,虛擬機的設備沒有事件需要處理。
[0045]再例如,虛擬機的設備的狀態可以包括:虛擬機的設備即將被使用,或者,虛擬機的設備不即將被使用。
[0046]可選的,獲取所述虛擬機的設備的當前狀態,可以包括:
[0047]檢測虛擬機的設備的當前所處的模式,其中,虛擬機的模式與虛擬機的設備--
對應,每一種模式分別用於指示與該模式對應的虛擬機的設備即將被使用;
[0048]若虛擬機的設備當前所處的模式包含該虛擬機的設備對應的模式,則判斷所述虛擬機的設備的當前狀態為即將被使用。
[0049]例如:由於通常連接了 VNC以後都會有滑鼠操作,故可預設USB滑鼠對應的模式為使用VNC登錄虛擬機;所以,當模擬處理器檢測到USB滑鼠當前所處的模式為「使用VNC登錄虛擬機」,則可判斷USB滑鼠的當前狀態為即將被使用;
[0050]同理,由於通常插了 U盤以後都會有U盤數據傳輸,故可預設U盤對應的模式為插了 U盤;所以,當模擬處理器檢測到U盤當前所處的模式為「插了 U盤」,則可判斷U盤的當前狀態為即將被使用;
[0051]需要說明的是,虛擬機的設備的模式可以根據實際需要進行預設,虛擬機的設備的每一個模式可以對應該虛擬機的設備即將被使用,本發明實施例對虛擬機的設備的模式不進行具體限定。
[0052]202: 根據虛擬機的設備的當前狀態以及預設的虛擬機的設備的狀態與定時器頻率的對應關係,將虛擬機的設備的定時器的當前頻率更改為與虛擬機的設備的當前狀態對應的定時器的頻率。
[0053]可選的,虛擬機的設備的狀態與定時器頻率的對應關係可以根據需要預先進行設置,每種虛擬機的設備的狀態對應該虛擬機的設備的定時器的一個頻率,本發明實施例對於該對應關係的形式不進行限制,優選的,對於響應精度要求高的虛擬機的設備的狀態,可以對應一個較高的頻率,對於響應精度要求不高的虛擬機的設備的狀態,可以對應一個較低的頻率,其中,本發明實施例對於較高的頻率以及較低的頻率不具體進行限制,具體可以根據實際要求或者經驗確定。
[0054]可選的,該預設的虛擬機的設備的狀態與定時器頻率的對應關係可以包括:虛擬機的設備有事件需要處理對應所述定時器的第一頻率;虛擬機的設備沒有事件需要處理對應定時器的第二頻率;其中,第一頻率大於第二頻率。
[0055]可選的,預設的虛擬機的設備的狀態與定時器頻率的對應關係可以包括:虛擬機的設備即將被使用對應所述定時器的第三頻率;虛擬機的設備不即將被使用對應所述定時器的第四頻率;其中,第三頻率大於第四頻率。
[0056]本發明的實施例提供的管理虛擬機的設備的方法,通過獲取所述虛擬機的設備的當前狀態;並根據虛擬機的設備的當前狀態以及預設的虛擬機的設備的狀態與所述定時器頻率的對應關係,將虛擬機的設備的定時器的當前頻率更改為與虛擬機的設備的當前狀態對應的定時器的頻率,從而實現根據虛擬機的設備的當前狀態自動更改虛擬機設備定時器的頻率,從而在保證虛擬機設備高精度性能體驗的同時降低了 CPU的開銷,解決了現有技術在虛擬機沒有使用設備的情況下,定時器還是保持高精度,造成CPU資源浪費的缺陷。
[0057]下面通過兩個具體實施例對圖2所示方法實施例進行詳細描述。
[0058]實施例一
[0059]本實施例以虛擬機的設備為U盤,且以虛擬機的設備的狀態為是否有事件需要處理為例進行說明,參見圖3,可以包括:
[0060]301、模擬處理器獲取虛擬機的設備即U盤的當前狀態;
[0061]可選的,U盤的狀態可以為是`否有事件需要處理;
[0062]例如,qemu中U盤的定時器按照一定頻率定期檢測一次虛擬機是否有U盤事件。
[0063]302、若該U盤的狀態為沒有事件需要處理,將與該U盤對應的定時器的當前頻率F更改為與「沒有事件需要處理」這個狀態對應的第二頻率F2 ;
[0064]定時器的頻率影響著虛擬機對該定時器對應的設備的事件響應的實時性,也影響著qemu進程的CPU利用率。以虛擬機平臺上使用U盤傳輸數據為例,參見表1,為虛擬機模擬的U盤的定時器頻率、傳輸數據時的寫速度和模擬處理器的利用率三方面對應關係的測試結果。
[0065]表1
[0066]
【權利要求】
1.一種管理虛擬機的設備的方法,其特徵在於,包括: 獲取所述虛擬機的設備的當前狀態; 根據所述虛擬機的設備的當前狀態以及預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係,將所述虛擬機的設備的定時器的當前頻率更改為與所述虛擬機的設備的當前狀態對應的定時器的頻率。
2.根據權利要求1所述的管理虛擬機的設備的方法,其特徵在於,所述虛擬機的設備的狀態包括:所述虛擬機的設備有事件需要處理,或者,所述虛擬機的設備沒有事件需要處理。
3.根據權利要求2所述的管理虛擬機的設備的方法,其特徵在於, 所述預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係包括:所述虛擬機的設備有事件需要處理對應所述定時器的第一頻率;所述虛擬機的設備沒有事件需要處理對應所述定時器的第二頻率;其中,所述第一頻率大於所述第二頻率。
4.根據權利要求1所述的管理虛擬機的設備的方法,其特徵在於,所述虛擬機的設備的狀態包括:所述虛擬機的設備即將被使用,或者,所述虛擬機的設備不即將被使用。
5.根據權利要求4所述的管理虛擬機的設備的方法,其特徵在於, 所述預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係包括:所述虛擬機的設備即將被使用對應所述定時器的第三頻率;所述虛擬機的設備不即將被使用對應所述定時器的第四頻率;其中,所述第三頻率大於所述第四頻率。
6.根據權利要求4或5所述的管理虛擬機的設備的方法,其特徵在於,所述獲取所述虛擬機的設備的當前狀態,包括: 檢測所述虛擬機的設備的當前所處的模式,其中,所述虛擬機的模式與所述虛擬機的設備一一對應,每一種模式分別用於指示與所述模式對應的所述虛擬機的設備即將被使用; 若所述虛擬機的當前所處的模式包含所述虛擬機的設備對應的模式,則判斷所述虛擬機的設備的當前狀態為即將被使用。
7.—種管理虛擬機的設備的設備,其特徵在於,包括: 獲取單元,用於獲取所述虛擬機的設備的當前狀態; 更改單元,用於根據所述獲取單元獲取的所述虛擬機的設備的當前狀態以及預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係,將所述虛擬機的設備的定時器的當前頻率更改為與所述虛擬機的設備的當前狀態對應的定時器的頻率。
8.根據權利要求7所述的管理虛擬機的設備的設備,其特徵在於,所述虛擬機的設備的狀態包括:所述虛擬機的設備有事件需要處理,或者,所述虛擬機的設備沒有事件需要處理。
9.根據權利要求8所述的管理虛擬機的設備的設備,其特徵在於, 所述預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係包括:所述虛擬機的設備有事件需要處理對應所述定時器的第一頻率;所述虛擬機的設備沒有事件需要處理對應所述定時器的第二頻率;其中,所述第一頻率大於所述第二頻率。
10.根據權利要求7所述的管理虛擬機的設備的設備,其特徵在於,所述虛擬機的設備的狀態包括:所述虛擬機的設備即將被使用,或者,所述虛擬機的設備不即將被使用。
11.根據權利要求10所述的管理虛擬機的設備的設備,其特徵在於, 所述預設的所述虛擬機的設備的狀態與所述定時器頻率的對應關係包括:所述虛擬機的設備即將被使用對應所述定時器的第三頻率;所述虛擬機的設備不即將被使用對應所述定時器的第四頻率;其中,所述第三頻率大於所述第四頻率。
12.根據權利要求10或11所述的管理虛擬機的設備的設備,其特徵在於,所述獲取單元具體用於, 檢測所述虛擬機的設備的當前所處的模式,其中,所述虛擬機的模式與所述虛擬機的設備一一對應,每一種模式分別用於指示與所述模式對應的所述虛擬機的設備即將被使用; 若所述虛擬機的當前 所處的模式包含所述虛擬機的設備對應的模式,則判斷所述虛擬機的設備的當前狀態為即將被使用。
【文檔編號】G06F9/455GK103488522SQ201310432720
【公開日】2014年1月1日 申請日期:2013年9月22日 優先權日:2013年9月22日
【發明者】王銳, 遲建春 申請人:華為技術有限公司