两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于kvm平臺的虛擬機cpu資源預(yù)留算法

文檔序號:9787248閱讀:842來源:國知局
基于kvm平臺的虛擬機cpu資源預(yù)留算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及CPU虛擬化、資源預(yù)留等技術(shù)領(lǐng)域,具體的說,是基于KVM平臺的虛擬機 CHJ資源預(yù)留算法。
【背景技術(shù)】
[0002] 隨著虛擬化平臺的部署實施,信息化建設(shè)的基本架構(gòu)、業(yè)務(wù)處理等方式都發(fā)生了 轉(zhuǎn)變。虛擬化技術(shù)是對單臺機器上的真實物理資源進行重新劃分、配置,形成多個獨立的虛 擬分區(qū),分別作為獨立的操作系統(tǒng)進行工作。虛擬化涉及的資源包括CPU、內(nèi)存、磁盤、IO等, 其中CPU虛擬化是很重要的構(gòu)成部分。在KVM全虛擬化技術(shù)框架下,虛擬機可以過載使用物 理資源,即給虛擬機分配的CHJ和內(nèi)存數(shù)量多于物理機上實際存在的資源。
[0003] 在KVM中默認的CPU分配算法是CFS(完全公平調(diào)度)算法,CFS的總體思想就是盡量 使進程按照設(shè)定的優(yōu)先級盡量公平的被調(diào)度。以前的進程被調(diào)度執(zhí)行的硬件時間片和操作 系統(tǒng)調(diào)度的軟件時間片差好幾個數(shù)量級,CFS算法是基于一個理想的,精確的多任務(wù)CPU設(shè) 計的,算法模擬了硬件的實現(xiàn),通過分割CHJ的時間使得每個任務(wù)的運行時間總是相等的。 實現(xiàn)上,在每個任務(wù)控制塊的調(diào)度實體上有一個變量vruntime保存了本任務(wù)的運行時間, 調(diào)度時找時間最小的任務(wù)運行,使得最后每個任務(wù)的運行時間都相等。不會在運行時間最 小的任務(wù)剛大于第二小的任務(wù)時就觸發(fā)調(diào)度,這樣會導(dǎo)致系統(tǒng)頻繁的進行任務(wù)切換消耗更 多資源。例如剛開始任務(wù)ti和t2的vruntime相等,任務(wù)ti運行非常小的時間,判斷ti的運行 時間大于〖 2,檢查這兩者的差值是否大于系統(tǒng)設(shè)置的調(diào)度粒度,SPti-hruntime-ts-〉 vruntime>sysctl_sched_min_granularity 才運行觸發(fā)一次調(diào)度。ti、t2 的狀態(tài)為 ready。另 外一個調(diào)度粒度是sysctl_sched_wakeup_granularity,這個表示當前任務(wù)的運行時間必 須大于被喚醒任務(wù)的運行時間+該粒度值,才運行觸發(fā)調(diào)度。所有待調(diào)度的任務(wù)以vruntime 為key值,通過rbtree進行排序。任務(wù)觸發(fā)一次yield操作時,會把任務(wù)放到rbtree的最右 邊,表示最后調(diào)度。
[0004] CFS算法中也可以根據(jù)任務(wù)的優(yōu)先級分配運行時間,相同運行時間下,可以保證優(yōu) 先級高的任務(wù)運行的時間更長。雖然優(yōu)先級高的任務(wù)運行時間更長,但是不能保證高優(yōu)先 級任務(wù)能在分配的運行時間內(nèi)比其他任務(wù)先完成,這可能仍然達不到高優(yōu)先級任務(wù)首先被 執(zhí)行的目的。

【發(fā)明內(nèi)容】

[0005] 本發(fā)明的目的在于提供基于KVM平臺的虛擬機CPU資源預(yù)留算法,通過對KVM接口 調(diào)用獲取虛擬機運行過程中的相關(guān)數(shù)據(jù),分析判斷虛擬機的運行狀態(tài),及時采取相應(yīng)的調(diào) 度策略,調(diào)整虛擬機處理器資源,以充分發(fā)揮處理器作用,提高虛擬機響應(yīng)性能;保證優(yōu)先 級高的任務(wù)能夠有充足的資源完成執(zhí)行目標,一個調(diào)度周期中,保證高優(yōu)先級任務(wù)充分完 成的情況下,恢復(fù)剩余時間為公平調(diào)度模式,使更多任務(wù)能夠及時被響應(yīng)。
[0006] 本發(fā)明通過下述技術(shù)方案實現(xiàn):基于KVM平臺的虛擬機CPU資源預(yù)留算法,包括以 下步驟:
[0007] 1)在內(nèi)核態(tài)通過獲取用戶設(shè)置的資源預(yù)留參數(shù),根據(jù)虛擬機優(yōu)先級公式計算出虛 擬機的優(yōu)先級S i的理論值,通過虛擬機的進程i d找到內(nèi)核態(tài)t a S k _ S t r u C t數(shù)據(jù)結(jié)構(gòu),將 task_strUCt數(shù)據(jù)結(jié)構(gòu)中的進程優(yōu)先級設(shè)置為S1;
[0008] 2)經(jīng)步驟1)后,另一個以t為周期的虛擬機定時器任務(wù)將會被觸發(fā),在該任務(wù)中通 過對虛擬機的優(yōu)先級理論值與虛擬機實際運行時間值進行比較,當虛擬機實際運行時 間值大于等于虛擬機的優(yōu)先SS 1的理論值時,所述達到理論預(yù)留時間片的虛擬機將從資源 預(yù)留算法恢復(fù)到默認的CFS算法。
[0009] 進一步的為更好的實現(xiàn)本發(fā)明,特別采用下述設(shè)置方式:所述步驟2)包括以下具 體步驟:
[0010] 2-1)內(nèi)核態(tài)獲取預(yù)留參數(shù)后,比較判斷以t為周期的虛擬機定時器當前是否達到 虛擬機統(tǒng)計時間T周期;
[0011] 2-2)經(jīng)步驟2-1)后,如果以t為周期的虛擬機定時器當前達到虛擬機統(tǒng)計時間T周 期,則將虛擬機的調(diào)度優(yōu)先級設(shè)置成虛擬機的優(yōu)先SS 1理論值,否則執(zhí)行步驟2-3);
[0012] 2-3)判斷用戶是否重新更改了虛擬機的資源預(yù)留值Ri,或者是否有新的虛擬機加 入到資源預(yù)留隊列中,如果為是則重復(fù)步驟2-2),如果為否則執(zhí)行步驟2-4);
[0013] 2-4)計算每個虛擬機的實際運行時間;
[0014] 2-5)經(jīng)步驟2-4)后,判斷虛擬機實際運行時間是否大于等于理論預(yù)留時間片,如 果為是則將大于等于理論預(yù)留時間片的虛擬機的優(yōu)先級S 1恢復(fù)成默認值,所述達到理論預(yù) 留時間片的虛擬機將從資源預(yù)留算法恢復(fù)到默認的CFS算法;如果為否,則按照設(shè)置好的虛 擬機的優(yōu)先級S 1繼續(xù)運行。
[0015] 進一步的為更好的實現(xiàn)本發(fā)明,特別采用下述設(shè)置方式:所述理論預(yù)留時間片包 括t周期內(nèi)虛擬機達到預(yù)留時間片的理論值tdP/或T周期內(nèi)虛擬機達到預(yù)留時間片的理論 值Ti;
[0018] 進一步的為更好的實現(xiàn)本發(fā)明,特別采用下述設(shè)置方式:所述t為100ms,所述T為 Is0
[0019] 進一步的為更好的實現(xiàn)本發(fā)明,特別采用下述設(shè)置方式:在步驟1)中,所述根據(jù)虛 擬機優(yōu)先級公式計算出虛擬機的優(yōu)先級S1具體為:利用虛擬機優(yōu)先級
算出虛擬機的優(yōu)先級Si,其中,i = 2,3,4......η,η為主機最大支持的虛擬機個數(shù)。
[0020] 進一步的為更好的實現(xiàn)本發(fā)明,特別采用下述設(shè)置方式:所述用戶設(shè)置的資源預(yù) 留參數(shù)通過在用戶態(tài)內(nèi)采用下述步驟得到;
[0021] (1)設(shè)置預(yù)留值,用戶通過Iibvirt調(diào)用virsh命令設(shè)置虛擬機的CPU資源預(yù)留參 數(shù);
[0022] (2)
[0023]經(jīng)步驟(1)后,用戶通過設(shè)置、修改、取消中的任意一種或多種此種方式進行CPU資 源預(yù)留參數(shù)的操作;
[0024] (3)經(jīng)步驟(2)后,通過IOCTL系統(tǒng)進行調(diào)用交給內(nèi)核態(tài)處理。
[0025] 本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點及有益效果:
[0026] 本發(fā)明通過對KVM接口調(diào)用獲取虛擬機運行過程中的相關(guān)數(shù)據(jù),分析判斷虛擬機 的運行狀態(tài),及時采取相應(yīng)的調(diào)度策略,調(diào)整虛擬機處理器資源,以充分發(fā)揮處理器作用, 提尚虛擬機響應(yīng)性能;保證優(yōu)先級尚的任務(wù)能夠有充足的資源完成執(zhí)彳丁目標,一個調(diào)度周 期中,保證高優(yōu)先級任務(wù)充分完成的情況下,恢復(fù)剩余時間為公平調(diào)度模式,使更多任務(wù)能 夠及時被響應(yīng)。
[0027]本發(fā)明通過進程優(yōu)先級方式來保證虛擬機的資源預(yù)留。
[0028]本發(fā)明通過用戶態(tài)和內(nèi)核態(tài)分工實現(xiàn),可以保證虛擬機在資源使用飽和的環(huán)境中 得到所預(yù)留的CPU資源,從而確保業(yè)務(wù)的實時性能。
[0029] 本發(fā)明通過改變KVM虛擬機的調(diào)度策略、運行優(yōu)先級,以及添加新的調(diào)度策略和綁 定虛擬機操作系統(tǒng)在指定的處理器上運行,使KVM虛擬機比其它Linux進程更有機會占有處 理器資源。
【附圖說明】
[0030] 圖1為本發(fā)明在用戶態(tài)處理時的流程圖。
[0031] 圖2為本發(fā)明在內(nèi)核態(tài)處理時的流程圖。
[0032] 圖3為虛擬機在優(yōu)化前后CPU資源統(tǒng)計圖。
【具體實施方式】
[0033] 下面結(jié)合實施例對本發(fā)明作進一步地詳細說明,但本發(fā)明的實施方式不限于此。
[0034] CPU虛擬化:CPU的虛擬化技術(shù)就是單CPU模擬多CPU并行,允許一個平臺同時運行 多個操作系統(tǒng),并且應(yīng)用程序都可以在相互獨立的空間內(nèi)運行而互不影響,從而顯著提高 計算機的工作效率。
[0035] 資源預(yù)留:資源預(yù)留是網(wǎng)格任務(wù)調(diào)度中一種普遍采用的策略,可以保證任務(wù)在開 始執(zhí)行時獲得足夠的資源。當前資源預(yù)留的研究主要集中在計算資源預(yù)留的情況,本申請 文件中的資源預(yù)留是對虛擬機進程運行時虛擬處理器所占用的物理處理器資源的預(yù)留。
[00
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
库伦旗| 昌都县| 蛟河市| 紫云| 天全县| 南华县| 青海省| 霸州市| 兴化市| 瑞昌市| 航空| 连南| 神木县| 威远县| 普宁市| 南靖县| 申扎县| 建湖县| 榆中县| 偏关县| 华亭县| 镇雄县| 耿马| 南皮县| 磴口县| 宣化县| 凤山县| 特克斯县| 阜南县| 旬邑县| 满城县| 海城市| 旅游| 平乐县| 崇明县| 闽侯县| 莲花县| 田东县| 宁武县| 兰溪市| 怀仁县|