虛擬機任務調度方法、虛擬機系統的制作方法
【技術領域】
[0001]本發明屬于虛擬機任務調度技術領域,具體涉及一種虛擬機任務調度方法、虛擬機系統。
【背景技術】
[0002]在云技術、大數據等領域中,大量采用虛擬機(VM)技術,即將實體的物理機的CPU、內存、硬盤等資源分為多份,用每份資源虛擬出一個虛擬機,每個虛擬機可獨立執行一個或多個任務。以通過分時復用技術提高整體的資源利用率。
[0003]在搜索引擎、電子商務等業務中,存在明顯的長尾效應(LongTail Effect,指任務種類多,但每種任務的量不大的現象),從而導致虛擬機本身出現嚴重的時延。而且,由于虛擬機的特性,故隨著運行任務狀況的不同,具有同樣資源的虛擬機的時延可能不同,甚至同一虛擬機在不同時刻的時延也不同。因此,目前進行虛擬機任務調度時都不考慮虛擬機的時延,由此導致任務的時延超出允許范圍,服務質量下降,影響用戶體驗。
【發明內容】
[0004]本發明針對現有的虛擬機任務調度方法會因虛擬機的時延導致服務質量下降,影響用戶體驗的問題,提供一種可使各任務都分配入具有適當的時延的虛擬機的虛擬機任務調度方法、虛擬機系統。
[0005]解決本發明技術問題所采用的技術方案是一種虛擬機任務調度方法,其包括:
[0006]接受任務,并根據所述任務對時延的要求將其分入相應的需求類型;
[0007]使虛擬機執行L次時鐘掛起a毫秒的操作,并記錄其中實際掛起時間大于b毫秒的時鐘掛起操作的次數X,其中b大于等于a;
[0008]根據X將所述虛擬機分入相應的性能類型;
[0009]根據任務的需求類型,將其分配給具有對應性能類型的虛擬機。
[0010]優選的是,所述根據所述任務對時延的要求將其分入相應的需求類型包括:根據預先設定的任務的種類與需求類型的關系,將任務分入與其種類相對應的需求類型。
[0011 ]優選的是,所述根據X將所述虛擬機分入相應的性能類型包括:根據X與預先設定的閾值間的關系,將虛擬機分入相應的性能類型。
[0012]進一步優選的是,所述閾值包括第一閾值,以及大于第一閾值的第二閾值;所述根據X將所述虛擬機分入相應的性能類型包括:若所述X小于第一閾值,則將所述虛擬機分入高性能類型;若所述X大于等于第一閾值而小于等于第二閾值,則將所述虛擬機分入中性能類型;若所述X大于第二閾值,則將所述虛擬機分入低性能類型。
[0013]進一步優選的是,所述L在12000至17000;所述b與a相等;所述第一閾值在11至15;所述第二閾值在55至75。
[0014]優選的是,所述1^在12000至17 000 ;所述a在6至8 ;所述b與a相等。
[0015]解決本發明技術問題所采用的技術方案是一種虛擬機系統,其包括:
[0016]多個物理機,用于建立多個虛擬機;
[0017]任務分類單元,用于接受任務,并根據所述任務對時延的要求將其分入相應的需求類型;
[0018]虛擬機測試單元,用于使虛擬機執行L次時鐘掛起a毫秒的操作,并記錄其中實際掛起時間大于b毫秒的時鐘掛起操作的次數X,其中b大于等于a;
[0019]虛擬機分類單元,用于根據X將所述虛擬機分入相應的性能類型;
[0020]任務分配單元,用于根據任務的需求類型,將其分配給具有對應性能類型的虛擬機。
[0021]優選的是,所述任務分類單元用于根據預先設定的任務的種類與需求類型的關系,將任務分入與其種類相對應的需求類型。
[0022]優選的是,所述虛擬機分類單元用于根據X與預先設定的閾值間的關系,將虛擬機分入相應的性能類型。
[0023]進一步優選的是,所述閾值包括第一閾值,以及大于第一閾值的第二閾值;所述虛擬機測試單元用于按照以下方式根據X將所述虛擬機分入相應的性能類型:若所述X小于第一閾值,則將所述虛擬機分入高性能類型;若所述X大于等于第一閾值而小于等于第二閾值,則將所述虛擬機分入中性能類型;若所述X大于第二閾值,則將所述虛擬機分入低性能類型。
[0024]本發明的虛擬機任務調度方法中,在分配任務前先通過使各虛擬機執行多次時鐘掛起操作檢測出各虛擬機當前的時延狀況,并據此進行任務分配,將對時延要求高的任務分入時延低的虛擬機,將對時延要求低的任務分入時延高的虛擬機,從而可使各任務都獲得可接受的時延,改善服務質量和用戶體驗。
[0025]本發明的虛擬機系統中,在分配任務前先通過使各虛擬機執行多次時鐘掛起操作檢測出各虛擬機當前的時延狀況,并據此進行任務分配,將對時延要求高的任務分入時延低的虛擬機,將對時延要求低的任務分入時延高的虛擬機,從而可使各任務都獲得可接受的時延,改善服務質量和用戶體驗。
【附圖說明】
[0026]圖1為本發明的實施例的一種虛擬機任務調度方法的流程示意圖;
[0027]圖2為本發明的實施例的另一種虛擬機任務調度方法的流程示意圖;
[0028]圖3為本發明的實施例的一種虛擬機系統的組成示意框圖。
【具體實施方式】
[0029]為使本領域技術人員更好地理解本發明的技術方案,下面結合附圖和【具體實施方式】對本發明作進一步詳細描述。
[0030]實施例1:
[0031 ]如圖1所示,本實施例提供一種虛擬機任務調度方法,其包括:
[0032]S101、接受任務,并根據任務對時延的要求將其分入相應的需求類型。
[0033]S102、使虛擬機執行L次時鐘掛起a毫秒的操作,并記錄其中實際掛起時間大于b毫秒的時鐘掛起操作的次數X,其中b大于等于a。
[0034]S103、根據X將虛擬機分入相應的性能類型。
[0035]S104、根據任務的需求類型,將其分配給具有對應性能類型的虛擬機。
[0036]本實施例的虛擬機任務調度方法中,在分配任務前先通過使各虛擬機執行多次時鐘掛起操作檢測出各虛擬機當前的時延狀況,并據此進行任務分配,將對時延要求高的任務分入時延低的虛擬機,將對時延要求低的任務分入時延高的虛擬機,從而可使各任務都獲得可接受的時延,改善服務質量和用戶體驗。
[0037]實施例2:
[0038]如圖2所示,本實施例提供一種虛擬機任務調度方法,其用于將任務分配給相應的虛擬機。
[0039]例如,以當前要將M個任務分配到N個虛擬機上為例進行說明,以上虛擬機任務調度方法包括:
[0040]S201、接受任務,并根據任務對時延的要求將其分入相應的需求類型。
[0041]優選的,本步驟包括:接受M個任務,并根據預先設定的任務的種類與需求類型的關系,將任務分入與其種類相對應的需求類型(如高需求類型、中需求類型、低需求類型)。
[0042]顯然,不同類型的任務對時延有不同的要求,且該要求是可知的:例如,網上支付類的任務對時延的要求就很高(即允許的時延低),因為不論支付是否成功,都應當很快得到確定的反饋,否則可能產生嚴重的安全問題;相對的,電子郵件類任務一般對時延的要求就較低(即允許的時延高),因為一般都不會要求電子郵件必須立刻達到。
[0043]因此,本步驟就是依照預先設定的任務的種類與需求類型的關系,根據任務的種類,將以上M個任務分入不同的需求類型中,如高需求類型(即允許的時延較低)、中需求類型(即允許的時延一般)、低需求類型(即允許的時延較高)。
[0044]S202、使虛擬機執行L次時鐘掛起a毫秒的操作,并記錄其中實際掛起時間大于b毫秒的時鐘掛起操作的次數X,其中b大于等于a。
[0045]也就是說,使每個虛擬機都分別循環執行SleeP(a)函數L次,以此作為對虛擬機的“測試”(當然各虛擬機的測試可同時進行)。其中,sleep()函數可將處理時鐘中斷,而不影響虛擬機正在運行的任務。當虛擬機的CPU等資源壓力較大時,會導致虛擬機的實際醒來時間比預定時間晚,即實際掛起時間比理論時間長。因此,虛擬機整體的時延越大,則其實際掛起時間超過預定時間(13_秒)的概率就越大,故通過實際掛起時間大于b_秒的時鐘掛起操作的次數X,即可判斷出虛擬機的性能。
[0046]當然,實際掛起時間顯然不可能小于理論的時鐘掛起時間(a毫秒),故b不能小于a。而b之所以可能大于a,是因為其可根據需求設定,例如,若認為存在微小時延并不影響虛擬機的使用,則可以將b定為略大于a的值。
[0047]以上的掛起測試的方法是在虛擬機本地進行的,不需要通過網絡,因此其一方面不受網絡擁堵的影響,另一方面也不會增大網絡壓力,故該測試方法簡單易行,且測試結果準確可靠。
[0048]S203、根據X將虛擬機分入相應的性能類型。
[0049]如前,X代表了虛擬機當前的時延狀況,故可根據X的值將虛擬機分入不同的性能類型中(如該高性能類型、中性能類型、低性能類型)。
[0050]其中,優選的,時鐘掛起操作的循環次數L在12000至17000,掛起操作的時間a在6至8,而b等于a。
[0051 ]顯然,時鐘掛起操作的次數越多越能準確的判斷虛擬機的性能;但若其次數過多,則會導致測試時間過長,任務分配過慢。因此,一般循環次數L優選在以上12000至17000的范圍,例如為15000,其相應的實際測試時間一般在3分鐘以內。
[0052]顯然,每次時鐘掛起操作的時間a越短,則在相同時間內進行的時鐘掛起操作次數就越多,測試結果越準確;但是,由于時間測試本身也存在不可避免的誤差、波動等,故若a過短,則以上誤差對其的影響就太大