欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于cpu親和力的虛擬cpu動(dòng)態(tài)綁定方法

文檔序號(hào):6334554閱讀:455來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):基于cpu親和力的虛擬cpu動(dòng)態(tài)綁定方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)科學(xué)中的在多核和眾核環(huán)境下的虛擬機(jī)領(lǐng)域,特別是基于CPU 親和力的虛擬CPU的動(dòng)態(tài)綁定方法。
背景技術(shù)
虛擬化技術(shù)是一種利用單個(gè)物理平臺(tái)虛擬多個(gè)客戶(hù)機(jī)操作系統(tǒng)(Guest OS)的技 術(shù)。隨著虛擬化和多核以及眾核技術(shù)的發(fā)展,同一平臺(tái)上多服務(wù)器之間實(shí)現(xiàn)了透明化,同時(shí) 虛擬機(jī)監(jiān)視器(Virtual Machine Monitor, VMM)在硬件管理上的不斷優(yōu)化,使得硬件資源 得以充分利用。多核和眾核平臺(tái)為虛擬化帶來(lái)了性能提升、可靠性提高以及全新的應(yīng)用模 式,同時(shí)以英特爾和AMD為代表的硬件級(jí)別的虛擬化技術(shù)能夠支持效率更高、性能更優(yōu)化 的本機(jī)虛擬化能力。多核與眾核技術(shù)的興起,為虛擬化技術(shù)的發(fā)展帶來(lái)了新的機(jī)遇和挑戰(zhàn)。 XeruKVM以及VMware作為當(dāng)前主流虛擬化技術(shù),在服務(wù)器整合、資源優(yōu)化、能量控制等方面 具有一定貢獻(xiàn)。隨著虛擬化技術(shù)應(yīng)用的廣泛,云計(jì)算和高性能計(jì)算已經(jīng)逐步在采取相應(yīng)的 虛擬化技術(shù)。其中,Xen作為當(dāng)前流行的開(kāi)源項(xiàng)目已經(jīng)在虛擬化的實(shí)現(xiàn)上有較大的共享。同 時(shí)虛擬化技術(shù)還在虛擬集群領(lǐng)域也有著廣闊的利用前景。在上述應(yīng)用場(chǎng)景中,由于多核處理器和多處理器的廣泛應(yīng)用,如何合理的分配使 用CPU資源是調(diào)度面臨嚴(yán)重的問(wèn)題。虛擬化技術(shù)使得客戶(hù)機(jī)操作系統(tǒng)不可直接訪問(wèn)硬件 資源,以CPU資源為例,虛擬機(jī)監(jiān)控器需要向客戶(hù)機(jī)操作系統(tǒng)提供虛擬CPU (Virtual CPU, VCPU),使得其系統(tǒng)內(nèi)的調(diào)度器完成調(diào)度。因此,對(duì)于運(yùn)行在上層虛擬機(jī)的進(jìn)程來(lái)說(shuō),其執(zhí)行 過(guò)程經(jīng)過(guò)了兩次調(diào)度。第一次是虛擬機(jī)操作系統(tǒng)本身的調(diào)度器,該算法可有效分析進(jìn)程特 性并進(jìn)行相應(yīng)的高效調(diào)度;第二次是虛擬機(jī)監(jiān)視器的調(diào)度器,負(fù)責(zé)整合多客戶(hù)機(jī)操作系統(tǒng) 間的CPU資源的分配,由于其調(diào)度單位為虛擬CPU,對(duì)虛擬機(jī)操作系統(tǒng)的進(jìn)程信息不可知, 因此基于下層硬件資源的公平分配方式使得某些進(jìn)程不能得到有效執(zhí)行。以Xen虛擬機(jī)默 認(rèn)的Credit調(diào)度器為例,盡管其在對(duì)稱(chēng)多處理器(Symmetrical Multi-Processors, SMP) 平臺(tái)下具有較高的適應(yīng)性,可有效提高CPU利用率,但是由于其調(diào)度單位為虛擬CPU,缺乏 對(duì)虛擬CPU內(nèi)的進(jìn)程屬性的認(rèn)知,因此在客戶(hù)機(jī)操作系統(tǒng)的調(diào)度器針對(duì)進(jìn)程屬性的調(diào)度策 略,無(wú)法在虛擬機(jī)監(jiān)視器這一層的調(diào)度器中實(shí)現(xiàn)。特別是對(duì)于CPU密集型的多線(xiàn)程進(jìn)程,由 于其頻繁訪問(wèn)內(nèi)存中的數(shù)據(jù)使得CPU 二級(jí)緩存的命中率成為其執(zhí)行效率的瓶頸,而Credit 調(diào)度器在調(diào)度時(shí)不對(duì)虛擬CPU進(jìn)行客戶(hù)機(jī)操作系統(tǒng)的區(qū)分,以及無(wú)法獲取其進(jìn)程特性,因 此這種情況下的盲目調(diào)度將較大的降低CPU 二級(jí)緩存命中率,從而影響系統(tǒng)整體效率。傳統(tǒng)的CPU親和力分為硬親和力和軟親和力,硬親和力的進(jìn)程主要是指由用戶(hù) 或操作系統(tǒng)硬性綁定在某CPU隊(duì)列中的進(jìn)程,軟親和力是操作系統(tǒng)固有的親和力特性,特 別是對(duì)于頻繁讀取數(shù)據(jù)的計(jì)算密集型進(jìn)程而言,其在CPU之間的遷移會(huì)造成較大的性能開(kāi) 銷(xiāo),而操作系統(tǒng)可有效防止這種開(kāi)銷(xiāo)。而在虛擬化環(huán)境下,虛擬機(jī)監(jiān)視器中的調(diào)度器無(wú)法根 據(jù)虛擬CPU上進(jìn)程的CPU親和力特性進(jìn)行調(diào)度優(yōu)化,因此,一種從虛擬機(jī)監(jiān)視器層獲取客戶(hù) 機(jī)操作系統(tǒng)進(jìn)程信息并且采取相應(yīng)策略的調(diào)度方法是十分必要的。

發(fā)明內(nèi)容
本發(fā)明以實(shí)現(xiàn)虛擬機(jī)進(jìn)程高效運(yùn)行為目標(biāo),通過(guò)CPU親和力的感知和虛擬CPU動(dòng) 態(tài)綁定,設(shè)計(jì)并實(shí)現(xiàn)了基于CPU親和力的虛擬CPU動(dòng)態(tài)綁定方法,具體包括1.客戶(hù)機(jī)操作系統(tǒng)中進(jìn)程的CPU親和力感知方法。首先,將客戶(hù)機(jī)操作系統(tǒng)中的進(jìn)程信息進(jìn)行捕獲,通過(guò)獲取進(jìn)程地址描述符,來(lái)獲 取CPU硬親和力信息;通過(guò)統(tǒng)計(jì)進(jìn)程實(shí)際的CPU時(shí)間與CPU占用時(shí)間,獲取CPU軟親和力信 肩、O其次,分析CPU硬親和力信息和軟親和力信息,設(shè)定CPU親和力系數(shù)值(Value ofAffinity Coefficient, VAC)。最后,修改Xen代碼中虛擬CPU的數(shù)據(jù)結(jié)構(gòu),添加結(jié)構(gòu)體PI (Process Information),用于存儲(chǔ)所捕獲進(jìn)程的相關(guān)信息。2.虛擬CPU動(dòng)態(tài)綁定方法 利用虛擬CPU中PI信息完成虛擬CPU綁定決策分析,分析過(guò)程包括對(duì)VAC的分析 和判定;制定虛擬CPU綁定策略,針對(duì)虛擬CPU中PI信息的分析結(jié)果,實(shí)現(xiàn)虛擬CPU的動(dòng)態(tài)綁定。與現(xiàn)有技術(shù)相比較,本發(fā)明的創(chuàng)新之處在于針對(duì)客戶(hù)機(jī)操作系統(tǒng)中正在執(zhí)行的 進(jìn)程,提出一種CPU親和力系數(shù)的量化方法,用于標(biāo)識(shí)該進(jìn)程對(duì)CPU 二級(jí)緩存的依賴(lài)程度; 根據(jù)AC值,采取基于CPU親和力的虛擬CPU綁定策略,從而保證CPU密集型進(jìn)程所在CPU 訪問(wèn)二級(jí)緩存的命中率,提高進(jìn)程執(zhí)行效率。具體體現(xiàn)在1.本發(fā)明實(shí)現(xiàn)了在虛擬機(jī)監(jiān)視器層對(duì)客戶(hù)機(jī)操作系統(tǒng)的進(jìn)程的捕獲,通過(guò)統(tǒng)計(jì)該 進(jìn)程所在虛擬CPU上的CPU實(shí)際使用情況和CPU占用情況,實(shí)現(xiàn)了一種CPU親和力系數(shù)的
量化方法。2.本發(fā)明實(shí)現(xiàn)了一種基于上述CPU親和力系數(shù)的虛擬CPU綁定方法,打破了在遷 移時(shí)優(yōu)先選擇CPU隊(duì)頭的虛擬CPU這一傳統(tǒng)思想,而是在保持負(fù)載平衡的前提下,選擇遷移 所造成的性能開(kāi)銷(xiāo)最小的虛擬CPU。


圖1基于CPU親和力的虛擬CPU動(dòng)態(tài)綁定方法的體系結(jié)構(gòu)圖2CPU親和力系數(shù)的捕獲與量化流程3虛擬CPU動(dòng)態(tài)綁定方法流程4虛擬CPU執(zhí)行綁定決策的調(diào)度器與傳統(tǒng)調(diào)度器在遷移時(shí)的對(duì)比圖
具體實(shí)施例方式如圖1所示,基于CPU親和力的虛擬CPU動(dòng)態(tài)綁定方法在虛擬機(jī)監(jiān)控器(VMM)中 實(shí)現(xiàn),分為客戶(hù)機(jī)操作系統(tǒng)CPU親和力感知引擎和虛擬CPU動(dòng)態(tài)綁定器2個(gè)模塊??蛻?hù)機(jī)操作系統(tǒng)CPU親和力感知引擎負(fù)責(zé)從客戶(hù)機(jī)操作系統(tǒng)中獲取即將得到執(zhí) 行的進(jìn)程的CPU親和力信息,并采用量化的VAC (Value of Affinity Coefficient, CPU親 和力系數(shù)值),向虛擬CPU動(dòng)態(tài)綁定器模塊提供該信息。包括CPU親和力信息捕獲、CPU親
5和力信息分析和虛擬CPU信息修改三個(gè)部分。CPU親和力信息捕獲分為CPU硬親和力捕獲和CPU軟親和力信息捕獲兩部分。在 虛擬機(jī)中,進(jìn)程切換需要更新CR3寄存器內(nèi)容,而由于客戶(hù)機(jī)操作系統(tǒng)沒(méi)有修改CR3寄存器 的特權(quán),因此這部分工作由虛擬機(jī)監(jiān)視器來(lái)完成。如圖2所示,在虛擬機(jī)監(jiān)視器層通過(guò)捕獲 CR3寄存器被修改這一時(shí)刻,立即讀取進(jìn)程描述符地址,通過(guò)虛擬地址到機(jī)器地址的轉(zhuǎn)換, 讀取即將執(zhí)行的進(jìn)程信息,利用CPU硬親和力信息在進(jìn)程結(jié)構(gòu)體中的偏移量,來(lái)獲取CPU的 硬親和力信息。不同的Linux版本對(duì)應(yīng)的該偏移量不同,因此該偏移量需要根據(jù)客戶(hù)機(jī)操 作系統(tǒng)的內(nèi)核版本進(jìn)行調(diào)整。如果此時(shí)該進(jìn)程對(duì)CPU硬親和力進(jìn)行了設(shè)定,即完成CPU硬親 和力的捕獲,無(wú)需再進(jìn)行CPU軟親和力捕獲過(guò)程;如果此時(shí)CPU硬親和力信息為空,則在該 進(jìn)程執(zhí)行過(guò)程中,通過(guò)統(tǒng)計(jì)該進(jìn)程的CPU實(shí)際使用情況來(lái)完成CPU軟親和力信息捕獲。CPU 實(shí)際使用情況的統(tǒng)計(jì)方法通過(guò)在虛擬CPU數(shù)據(jù)結(jié)構(gòu)中為每個(gè)執(zhí)行的進(jìn)程設(shè)定計(jì)時(shí)器。對(duì)于 I/O訪問(wèn)頻繁的進(jìn)程,在其執(zhí)行時(shí)間內(nèi)所消耗CPU時(shí)間較少;對(duì)于CPU密集的進(jìn)程,其可充 分利用執(zhí)行時(shí)間內(nèi)的CPU資源。因此,通過(guò)統(tǒng)計(jì)該進(jìn)程在本次調(diào)度周期內(nèi)占有CPU時(shí)間與 實(shí)際使用的CPU時(shí)間,來(lái)提供CPU軟親和力信息。其中CPU執(zhí)行時(shí)間指進(jìn)程實(shí)際使用的CPU 時(shí)間,CPU占用時(shí)間指調(diào)度器調(diào)度給該進(jìn)程的時(shí)間,CPU執(zhí)行時(shí)間與CPU占用時(shí)間均針對(duì)在 一個(gè)調(diào)度周期內(nèi)的相應(yīng)統(tǒng)計(jì)數(shù)值。CPU的親和力信息分析負(fù)責(zé)針對(duì)CPU親和力信息捕獲情況來(lái)設(shè)定VAC的數(shù)值。 VAC(Valueof Affinity Coefficient)指CPU親和力系數(shù)值,其值被設(shè)定在
的閉區(qū) 間內(nèi)。對(duì)于CPU硬親和力信息不為空的情況,令VAC= 100 ;對(duì)于CPU硬親和力信息為空的 情況,根據(jù)CPU親和力捕獲中統(tǒng)計(jì)的CPU執(zhí)行時(shí)間來(lái)計(jì)算VAC的數(shù)值。具體公式為
/CPU執(zhí)行時(shí)間、
¥AG = ---— * 100
Icpu占用時(shí)冏/虛擬CPU信息修改負(fù)責(zé)向虛擬CPU動(dòng)態(tài)綁定器模塊提供VAC信息。具體實(shí)現(xiàn)為, 通過(guò)修改Xen代碼中虛擬CPU的數(shù)據(jù)結(jié)構(gòu),添加結(jié)構(gòu)體PI (Process Information),該結(jié)構(gòu) 用于存儲(chǔ)當(dāng)前VAC的值,同時(shí)還負(fù)責(zé)記錄最近Is內(nèi)的所有調(diào)度周期中的各個(gè)VAC數(shù)值,當(dāng) 新進(jìn)程到來(lái)尚未執(zhí)行并且其硬親和力信息為空時(shí),由于無(wú)法計(jì)算此時(shí)的VAC,因此可通過(guò)計(jì) 算歷史數(shù)據(jù)的平均值向虛擬CPU動(dòng)態(tài)綁定器提供VAC信息。虛擬CPU動(dòng)態(tài)綁定器模塊通過(guò)客戶(hù)機(jī)操作系統(tǒng)CPU親和力感知引擎提供的CPU親 和力信息,對(duì)虛擬CPU實(shí)現(xiàn)動(dòng)態(tài)綁定。具體分為虛擬CPU綁定決策分析和虛擬CPU綁定策 略?xún)刹糠?。虛擬CPU綁定決策分析負(fù)責(zé)讀取虛擬CPU中的PI信息,將VAC提取出來(lái),通過(guò)VAC 的數(shù)值進(jìn)行綁定決策判定。在VAC大于75時(shí),判定為可綁定;在VAC小于等于75時(shí),判定 為不綁定。通過(guò)實(shí)驗(yàn)分析,這種情況下,整體調(diào)度性能最優(yōu),因此選擇此判定策略進(jìn)行虛擬 CPU綁定決策分析。虛擬CPU的綁定策略負(fù)責(zé)根據(jù)虛擬CPU的綁定信息對(duì)相應(yīng)的虛擬CPU進(jìn)行綁定和 遷移。當(dāng)虛擬CPU綁定決策分析結(jié)果為不綁定時(shí),如果虛擬CPU處于綁定狀態(tài),則執(zhí)行相應(yīng) 解除綁定策略,如果虛擬CPU此時(shí)處于非綁定狀態(tài),則不進(jìn)行任何綁定和遷移;當(dāng)虛擬CPU 綁定決策分析結(jié)果為可綁定時(shí),執(zhí)行相應(yīng)綁定策略。具體策略如下
6
(1)綁定到未發(fā)生虛擬CPU綁定的CPU上;(2)根據(jù)各CPU運(yùn)轉(zhuǎn)情況,綁定在負(fù)載較輕的CPU上;(3)各CPU負(fù)載較為均衡時(shí),綁定在虛擬CPU所處隊(duì)列對(duì)應(yīng)的CPU上;(4)解除綁定時(shí),虛擬CPU不遷移;(5)當(dāng)虛擬CPU綁定數(shù)目等于CPU個(gè)數(shù)時(shí),對(duì)于下次綁定之前,將VAC最低的虛擬 CPU的綁定解除;(6)空閑狀態(tài)的虛擬CPU不進(jìn)行任何綁定操作,當(dāng)虛擬CPU從其它狀態(tài)進(jìn)入空閑狀 態(tài)時(shí),如果該虛擬CPU被綁定,則解除其綁定。虛擬CPU的遷移策略旨在減少CPU 二級(jí)緩存的失效率,提高CPU利用效率。因此 對(duì)于VAC較高的虛擬CPU,其頻繁的訪問(wèn)CPU 二級(jí)緩存突顯綁定的必要性。策略(1)通過(guò) 防止兩個(gè)VAC較高的虛擬CPU在同一 CPU隊(duì)列中,從而避免兩個(gè)虛擬CPU輪流執(zhí)行而導(dǎo)致 CPU 二級(jí)緩存的頻繁失效;策略(2)通過(guò)在綁定時(shí)考慮負(fù)載情況,從而保證了 CPU之間的負(fù) 載平衡;策略(3)在負(fù)載平衡均衡時(shí),避免遷移的開(kāi)銷(xiāo),優(yōu)先將虛擬CPU綁定在本地隊(duì)列中; 策略(4)通過(guò)在解除綁定時(shí)避免虛擬CPU遷移從而進(jìn)一步減少了遷移開(kāi)銷(xiāo);策略(5)保證 了任意時(shí)刻虛擬CPU綁定的數(shù)量不大于CPU數(shù)量,結(jié)合策略(1)避免了多個(gè)綁定虛擬CPU 在同一 CPU隊(duì)列從而帶來(lái)的CPU 二級(jí)緩存頻繁失效問(wèn)題,并進(jìn)一步保證了負(fù)載平衡。策略 (6)考慮到虛擬CPU的狀態(tài)轉(zhuǎn)換時(shí)的綁定解除問(wèn)題,確保了空閑的虛擬CPU不會(huì)綁定。根據(jù)以上策略,虛擬CPU動(dòng)態(tài)綁定流程如圖3所示。首先根據(jù)虛擬CPU綁定決策分 析結(jié)果來(lái)判定該虛擬CPU是否需要綁定。如果該虛擬CPU不可綁定,那么繼續(xù)判斷該虛擬 CPU是否已經(jīng)被綁定,如果是,則解除其綁定并結(jié)束,如果否,則直接結(jié)束。如果該虛擬CPU 可綁定,則繼續(xù)判斷該虛擬CPU是否已經(jīng)綁定。如果是,則直接結(jié)束,如果否,則從所有的 CPU隊(duì)列中選擇沒(méi)有綁定虛擬CPU的CPU,并將此類(lèi)型的CPU數(shù)目分為三種情況數(shù)目等于 0,這表明所有CPU存在虛擬CPU綁定的情況,按照策略,選擇VAC值最小的虛擬CPU,并解除 其綁定,然后將需要綁定的該虛擬CPU綁定至解除綁定的虛擬CPU所在的CPU隊(duì)列上并結(jié) 束;數(shù)目等于1,則直接綁定在該CPU上并結(jié)束;數(shù)目大于1,則根據(jù)CPU隊(duì)列中虛擬CPU個(gè) 數(shù),選擇虛擬CPU個(gè)數(shù)最少的CPU隊(duì)列,如果虛擬CPU個(gè)數(shù)最少的CPU隊(duì)列有多個(gè)的情況, 則首先判定虛擬CPU所在CPU是否處于其中,如果是,則直接綁定到該CPU隊(duì)列中并結(jié)束, 如果否,按照CPU的id優(yōu)先選擇id小的CPU,然后將虛擬CPU綁定到該隊(duì)列中并結(jié)束,如果 虛擬CPU個(gè)數(shù)最少的CPU隊(duì)列只有一個(gè),則直接將虛擬CPU綁定到該隊(duì)列中并結(jié)束。以上過(guò)程在調(diào)度每個(gè)虛擬CPU時(shí)執(zhí)行,每個(gè)調(diào)度周期執(zhí)行一次。另外,由于調(diào)度期 間調(diào)度器只針對(duì)非空閑的虛擬CPU進(jìn)行調(diào)度,因此為保證策略(6)的執(zhí)行,在虛擬CPU進(jìn)入 空閑狀態(tài)時(shí),進(jìn)行判定,對(duì)于處于綁定狀態(tài)的虛擬CPU,解除綁定;對(duì)于非綁定的虛擬CPU, 不進(jìn)行額外操作。圖4是基于CPU親和力的虛擬CPU動(dòng)態(tài)綁定方法與傳統(tǒng)的調(diào)度方法在遷移時(shí)的 區(qū)別對(duì)比。傳統(tǒng)的調(diào)度策略(圖4中的A)在遷移時(shí)選擇其它CPU的隊(duì)列中的第一個(gè)虛擬 CPU ;通過(guò)本發(fā)明中的兩個(gè)模塊進(jìn)行判定并綁定了虛擬CPU Y. 1之后當(dāng)需要遷移(圖4中的 B)時(shí),優(yōu)先選擇未綁定的虛擬CPU,如圖4B中的虛擬CPU X. 1。
權(quán)利要求
一種多核/眾核平臺(tái)下的基于CPU親和力的虛擬CPU動(dòng)態(tài)綁定方法,其特征在于包括以下步驟(1)客戶(hù)機(jī)操作系統(tǒng)CPU親和力感知引擎從客戶(hù)機(jī)操作系統(tǒng)中獲取即將執(zhí)行的進(jìn)程的CPU親和力信息,并用CPU親和力系數(shù)值VAC量化該CPU親和力信息,向虛擬CPU動(dòng)態(tài)綁定器提供該VAC值,具體包括CPU親和力信息捕獲、CPU親和力信息分析和虛擬CPU信息修改三個(gè)步驟,其中1)CPU親和力信息捕獲包括CPU硬親和力信息捕獲和CPU軟親和力信息捕獲通過(guò)捕獲CR3寄存器被修改這一時(shí)刻,立即讀取進(jìn)程描述符地址,并通過(guò)虛擬地址到機(jī)器地址的轉(zhuǎn)換,讀取即將執(zhí)行的進(jìn)程信息,利用CPU硬親和力信息在進(jìn)程結(jié)構(gòu)體中的偏移量,來(lái)獲取CPU的硬親和力信息,如果此時(shí)該進(jìn)程對(duì)CPU硬親和力進(jìn)行了設(shè)定,即CPU硬親和力信息不為空,那么CPU硬親和力信息捕獲完成,如果此時(shí)CPU硬親和力信息為空,則進(jìn)行CPU軟親和力信息捕獲,CPU軟親和力信息是通過(guò)在進(jìn)程執(zhí)行過(guò)程中統(tǒng)計(jì)該進(jìn)程的CPU實(shí)際利用情況來(lái)完成的,具體包括CPU執(zhí)行時(shí)間和CPU占用時(shí)間,其中CPU執(zhí)行時(shí)間指進(jìn)程實(shí)際使用的CPU時(shí)間,CPU占用時(shí)間指調(diào)度器調(diào)度給該進(jìn)程的時(shí)間,CPU執(zhí)行時(shí)間與CPU占用時(shí)間均針對(duì)在一個(gè)調(diào)度周期內(nèi)的相應(yīng)統(tǒng)計(jì)數(shù)值;2)CPU的親和力信息分析中針對(duì)CPU親和力信息捕獲情況來(lái)設(shè)定VAC的數(shù)值,對(duì)于CPU硬親和力信息不為空的情況,令VAC=100,對(duì)于CPU硬親和力信息為空的情況,根據(jù)以下公式來(lái)計(jì)算VAC的數(shù)值3)虛擬CPU信息修改中向虛擬CPU動(dòng)態(tài)綁定器提供VAC信息,存儲(chǔ)當(dāng)前VAC的值,同時(shí)還記錄1秒內(nèi)的調(diào)度周期的各個(gè)VAC數(shù)值,當(dāng)新進(jìn)程到來(lái)尚未執(zhí)行并且其硬親和力信息為空時(shí),通過(guò)計(jì)算歷史數(shù)據(jù)的平均值向虛擬CPU動(dòng)態(tài)綁定器提供VAC信息;(2)虛擬CPU動(dòng)態(tài)綁定器通過(guò)客戶(hù)機(jī)操作系統(tǒng)CPU親和力感知引擎提供的CPU親和力信息,對(duì)虛擬CPU實(shí)現(xiàn)動(dòng)態(tài)綁定,具體包括虛擬CPU綁定決策分析和執(zhí)行虛擬CPU綁定策略?xún)蓚€(gè)步驟,其中1)虛擬CPU綁定決策分析中,讀取VAC值,通過(guò)VAC的數(shù)值進(jìn)行綁定決策判定在VAC大于75時(shí),判定為可綁定,在VAC小于等于75時(shí),判定為不綁定;2)執(zhí)行虛擬CPU的綁定策略中,根據(jù)虛擬CPU的綁定決策分析結(jié)果對(duì)相應(yīng)的虛擬CPU進(jìn)行綁定和遷移,當(dāng)虛擬CPU綁定決策分析結(jié)果為不綁定時(shí),如果虛擬CPU處于綁定狀態(tài),則執(zhí)行相應(yīng)解除綁定策略,如果虛擬CPU此時(shí)處于非綁定狀態(tài),則不進(jìn)行任何綁定和遷移;當(dāng)虛擬CPU綁定決策分析結(jié)果為可綁定時(shí),執(zhí)行相應(yīng)綁定策略。FSA00000321403700011.tif
2.如權(quán)利要求1所述的方法,其特征在于,VAC的取值區(qū)間為
的閉區(qū)間,VAC 值越大代表CPU親和力程度越高。
3.如權(quán)利要求1所述的方法,其特征在于,客戶(hù)機(jī)操作系統(tǒng)CPU親和力感知引擎在統(tǒng)計(jì) 進(jìn)程的CPU實(shí)際利用情況時(shí),通過(guò)統(tǒng)計(jì)該進(jìn)程在本次調(diào)度周期內(nèi)時(shí)實(shí)際使用的CPU時(shí)間和 調(diào)度器調(diào)度給該進(jìn)程的CPU時(shí)間來(lái)完成。
4.如權(quán)利要求1所述的方法,其特征在于,虛擬CPU動(dòng)態(tài)綁定器中虛擬CPU的綁定策略 具體為1)綁定到未發(fā)生虛擬CPU綁定的CPU上;2)根據(jù)各CPU運(yùn)轉(zhuǎn)情況,綁定在負(fù)載較輕的CPU上;3)各CPU負(fù)載較為均衡時(shí),綁定在虛擬CPU所處隊(duì)列對(duì)應(yīng)的CPU上;4)解除綁定時(shí),虛擬CPU不遷移;5)當(dāng)虛擬CPU綁定數(shù)目等于CPU個(gè)數(shù)時(shí),對(duì)于下次綁定之前,將VAC最低的虛擬CPU的 綁定解除;6)空閑狀態(tài)的虛擬CPU不進(jìn)行任何綁定操作,當(dāng)虛擬CPU從其它狀態(tài)進(jìn)入空閑狀態(tài)時(shí), 如果該虛擬CPU被綁定,則解除其綁定。
5.如權(quán)利要求1所述的方法,其特征在于,客戶(hù)機(jī)操作系統(tǒng)是Linux。
6.如權(quán)利要求1所述的方法,其特征在于,虛擬機(jī)監(jiān)視器是Xen。
7.一種系統(tǒng),其執(zhí)行如權(quán)利要求1所述的方法步驟。
全文摘要
一種在多核/眾核平臺(tái)下的基于CPU親和力的虛擬CPU動(dòng)態(tài)綁定方法,其包括客戶(hù)操作系統(tǒng)CPU親和力感知引擎和虛擬CPU動(dòng)態(tài)綁定器兩個(gè)模塊。客戶(hù)操作系統(tǒng)CPU親和力感知引擎從Guest OS中獲取即將得到執(zhí)行的進(jìn)程的CPU親和力信息,并采用量化的VAC(Valueof Affinity Coefficient,CPU親和力系數(shù)值),向虛擬CPU動(dòng)態(tài)綁定器提供該信息;虛擬CPU動(dòng)態(tài)綁定器模塊通過(guò)客戶(hù)操作系統(tǒng)CPU親和力感知引擎提供的CPU親和力信息,執(zhí)行相應(yīng)策略,實(shí)現(xiàn)對(duì)虛擬CPU實(shí)現(xiàn)動(dòng)態(tài)綁定。
文檔編號(hào)G06F9/455GK101976201SQ20101052210
公開(kāi)日2011年2月16日 申請(qǐng)日期2010年10月22日 優(yōu)先權(quán)日2010年10月22日
發(fā)明者李智, 白躍彬 申請(qǐng)人:北京航空航天大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
德化县| 自贡市| 桐城市| 怀化市| 泰兴市| 桑植县| 马关县| 大渡口区| 博罗县| 浏阳市| 汾阳市| 甘泉县| 大邑县| 常德市| 集贤县| 灵宝市| 英德市| 民县| 资源县| 万安县| 承德市| 三都| 梁平县| 琼中| 陆河县| 葵青区| 聊城市| 尼木县| 建水县| 尼勒克县| 寻乌县| 伊川县| 松阳县| 满城县| 武威市| 和平县| 双柏县| 凤山市| 怀宁县| 赤壁市| 吉首市|