本發(fā)明屬于虛擬化計算技術(shù)領(lǐng)域,更具體地,涉及一種基于并行應(yīng)用階段檢測的虛擬時間片調(diào)度方法及系統(tǒng)。
背景技術(shù):
隨著多核架構(gòu)和虛擬化技術(shù)的快速發(fā)展,眾多學術(shù)機構(gòu)和企業(yè)開始嘗試將不同的應(yīng)用負載放到云端來運行,其中就包含并行應(yīng)用。為了提高資源的利用率,虛擬化技術(shù)可以將多個獨立的應(yīng)用負載整合到同一個物理硬件系統(tǒng)中,然而這將會導(dǎo)致遠超物理cpu數(shù)量的虛擬cpu被運行在這些物理cpu上,這種資源的過載現(xiàn)象使得并行應(yīng)用在運行過程中受到嚴重的性能損失。
眾所周知,一個并行應(yīng)用在運行過程中,計算階段和通信階段交替執(zhí)行,通常情況下通信階段的同步開銷對整體性能有著很重要的影響。并行應(yīng)用的同步方法可以用幾種方式實現(xiàn),例如在共享內(nèi)存多線程模型中使用鎖或在分布式內(nèi)存模型中使用消息傳遞接口(messagepassinginterface,mpi)。
在一個多線程應(yīng)用中,高性能低開銷的自旋鎖(spinlock)或者屏障(barrier)通常被用來解決多個線程訪問同一資源時的競爭問題。在原生操作系統(tǒng)中,自旋鎖的使用是為了保護較短的臨界區(qū),當自旋鎖已經(jīng)被占用時,其他試圖獲取此鎖的線程將會忙等待直到鎖被釋放;當一個線程獲取自旋鎖后,操作系統(tǒng)將會禁用搶占以避免臨界區(qū)代碼的執(zhí)行被打斷。然而在虛擬化環(huán)境中,一個持有自旋鎖的線程可能會由于虛擬機cpu(即vcpu)調(diào)度被虛擬機監(jiān)控器(virtualmachinemonitor,vmm)搶占,此時等待獲取鎖的vcpu將會忙等待很長的時間直到持有鎖的vcpu被再次調(diào)度并釋放此鎖,這將會導(dǎo)致大量的cpu資源被浪費,嚴重影響了并行應(yīng)用的性能。在使用屏障的多線程應(yīng)用中也存在類似的問題。例如,openmp中使用屏障進行同步的線程將會在被阻塞之前自旋指定的次數(shù)(默認值為300000)。在過載的虛擬化環(huán)境下,即使一個線程已經(jīng)到達屏障,但如果其他線程被vmm搶占,那么該線程也得忙等待很長時間直到其他線程也到達此屏障,這將會使同步點被大幅延后并嚴重影響并行應(yīng)用的性能。
在使用消息傳遞編程模型的并行應(yīng)用中,多機上進程間的同步需要通過網(wǎng)絡(luò)消息的收發(fā)來進行,例如,一個虛擬機上運行的消息發(fā)送進程在執(zhí)行發(fā)送操作時,必須收到其他虛擬機中消息接收進程的確認信息后才能發(fā)送消息。當應(yīng)用程序需要進行大量的通信操作并處于過載的虛擬化環(huán)境中時,消息收發(fā)例程會給內(nèi)核的網(wǎng)絡(luò)協(xié)議棧和i/o復(fù)用機制造成很大的壓力,具體來說,網(wǎng)絡(luò)協(xié)議棧和i/o復(fù)用機制在內(nèi)核實現(xiàn)中使用的自旋鎖也會被vmm搶占,從而造成cpu資源的浪費和應(yīng)用程序性能的損失。
針對并行應(yīng)用在虛擬化環(huán)境下的性能問題,目前的方法包括軟件優(yōu)化方法和硬件優(yōu)化方法。軟件優(yōu)化方法是通過優(yōu)化vcpu調(diào)度算法來提升性能,典型的軟件優(yōu)化方法包括協(xié)同調(diào)度和平衡調(diào)度,協(xié)同調(diào)度是通過侵入式的方法獲取虛擬機內(nèi)部自旋鎖的使用情況來判斷應(yīng)用程序的類型,若是并行應(yīng)用則將虛擬機的vcpu同時在各個物理cpu上進行調(diào)度,進而提升同步效率。然而這種方法打破了虛擬化層的透明性,并且對于像使用openmp庫的多線程應(yīng)用來說,由于自旋發(fā)生在用戶態(tài)而非內(nèi)核態(tài),所以vmm很難感知到應(yīng)用的類型,所以協(xié)同調(diào)度對這類應(yīng)用不適用。平衡調(diào)度是把一個虛擬機的所有vcpu分派到不同的物理cpu隊列上運行,這就增大了所有vcpu被同時調(diào)度的概率,進而提升了并行應(yīng)用的性能。然而當虛擬cpu數(shù)量遠多于物理cpu數(shù)量時,同一虛擬機所有vcpu被同時調(diào)度的概率大大降低,性能提升非常有限;再者,如果vcpu的分派策略使用不恰當,將會造成負載的不均,進而損害應(yīng)用的性能。針對硬件優(yōu)化方法,較新的intel處理器上集成的ple機制和amd處理器上集成的pf機制能夠在檢測到虛擬機上有大量的自旋等待時將vcpu強制調(diào)度出去,然而這種機制只能被用到全虛擬化系統(tǒng)中,對半虛擬系統(tǒng)不適用。為了解決上述問題,本發(fā)明試圖探尋一種更通用的調(diào)度方法,不管應(yīng)用程序的同步需求在用戶態(tài)還是在內(nèi)核態(tài),不管整個系統(tǒng)是全虛擬化還是半虛擬化,都能使得并行應(yīng)用的性能得到大幅提升。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的以上缺陷或改進需求,本發(fā)明提供了一種基于并行應(yīng)用階段檢測的虛擬時間片調(diào)度方法及系統(tǒng),可以根據(jù)并行應(yīng)用的不同執(zhí)行階段自適應(yīng)地調(diào)節(jié)虛擬機的時間片,從而更好地滿足并行應(yīng)用的計算和通信需求并能夠顯著提升其性能。由此解決現(xiàn)有技術(shù)中針對并行應(yīng)用在虛擬化環(huán)境下的性能問題。
為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種基于并行應(yīng)用階段檢測的虛擬時間片調(diào)度方法,包括:
s1、對于每個虛擬機,采集當前采樣周期t內(nèi)所述虛擬機中各虛擬cpu的緩存缺失信息,依據(jù)所述緩存缺失信息統(tǒng)計所述虛擬機的緩存缺失率,其中t為第一預(yù)設(shè)值;
s2、計算所述虛擬機的緩存缺失率相對于所述虛擬機的n個歷史采樣周期的平均緩存缺失率的變化率,確定所述虛擬機中運行的并行應(yīng)用處于計算階段還是通信階段,其中,n為第二預(yù)設(shè)值;
s3、確定所述并行應(yīng)用所處的執(zhí)行階段后,采取與所述執(zhí)行階段對應(yīng)的時間片調(diào)度策略。
優(yōu)選地,步驟s1包括如下子步驟:
s1.1、對于每個虛擬機,采集當前采樣周期t內(nèi)所述虛擬機中各虛擬cpu的三級緩存缺失次數(shù)和指令執(zhí)行數(shù)量,將所述各虛擬cpu的三級緩存缺失次數(shù)求和得到所述虛擬機的總體緩存缺失次數(shù),將所述各虛擬cpu的指令執(zhí)行數(shù)量求和得到所述虛擬機的總體指令執(zhí)行數(shù)量;
s1.2、由公式miss_ratecurr=α×總體緩存缺失次數(shù)/總體指令執(zhí)行數(shù)量,計算所述虛擬機在當前采樣周期t內(nèi)的緩存缺失率,其中α為第三預(yù)設(shè)值。
優(yōu)選地,步驟s2包括如下子步驟:
s2.1、采用滑動窗口保存所述虛擬機在n個歷史采樣周期內(nèi)的采樣數(shù)據(jù),其中,所述采樣數(shù)據(jù)包括虛擬cpu的緩存缺失次數(shù)和指令執(zhí)行數(shù)量;
s2.2、根據(jù)所述窗口中的采樣數(shù)據(jù)計算所述窗口的平均緩存缺失次數(shù)與平均指令執(zhí)行數(shù)量,并由公式miss_ratewindow=α×平均緩存缺失次數(shù)/平均指令執(zhí)行數(shù)量,計算所述窗口的平均緩存缺失率;
s2.3、由公式
s2.4、若δ在[1-ε,1+ε]之間,則表示所述并行應(yīng)用進入穩(wěn)定狀態(tài),并根據(jù)所述虛擬機在當前采樣周期t內(nèi)的緩存缺失率確定所述并行應(yīng)用處于計算階段還是通信階段,其中ε為第四預(yù)設(shè)值;
s2.5、若δ不在[1-ε,1+ε]之間,則表示所述并行應(yīng)用不再處于穩(wěn)定狀態(tài),將所述窗口中的數(shù)據(jù)全部移除并重置所述窗口大小。
優(yōu)選地,所述根據(jù)所述虛擬機在當前采樣周期t內(nèi)的緩存缺失率確定所述并行應(yīng)用處于計算階段還是通信階段,包括:若miss_ratecurr大于θ,則確定所述并行應(yīng)用處于計算階段,若miss_ratecurr不大于θ,則確定所述并行應(yīng)用處于通信階段,其中θ為第五預(yù)設(shè)值。
優(yōu)選地,步驟s3包括如下子步驟:
s3.1、若所述并行應(yīng)用處于通信階段,則判斷上個采樣周期的虛擬機時間片是否大于預(yù)設(shè)軟邊界;若所述并行應(yīng)用處于計算階段,則相對于上個采樣周期線性增加虛擬機時間片作為當前采樣周期的虛擬機時間片;
s3.2、若上個采樣周期的虛擬機時間片大于所述預(yù)設(shè)軟邊界,則相對于上個采樣周期采用指數(shù)式減小方法減小虛擬機時間片作為當前采樣周期的虛擬機時間片,否則,判斷上個采樣周期的虛擬機時間片是否大于預(yù)設(shè)硬邊界;
s3.3、若上個采樣周期的虛擬機時間片大于所述預(yù)設(shè)硬邊界,則相對于上個采樣周期線性減小虛擬機時間片作為當前采樣周期的虛擬機時間片,否則將當前采樣周期的虛擬機時間片設(shè)置為所述預(yù)設(shè)硬邊界。
按照本發(fā)明的另一方面,提供了一種基于并行應(yīng)用階段檢測的虛擬時間片調(diào)度系統(tǒng),包括:
采樣模塊,用于對于每個虛擬機,采集當前采樣周期t內(nèi)所述虛擬機中各虛擬cpu的緩存缺失信息,依據(jù)所述緩存缺失信息統(tǒng)計所述虛擬機的緩存缺失率,其中t為第一預(yù)設(shè)值;
檢測模塊,用于計算所述虛擬機的緩存缺失率相對于所述虛擬機的n個歷史采樣周期的平均緩存缺失率的變化率,確定所述虛擬機中運行的并行應(yīng)用處于計算階段還是通信階段,其中,n為第二預(yù)設(shè)值;
調(diào)度模塊,用于確定所述并行應(yīng)用所處的執(zhí)行階段后,采取與所述執(zhí)行階段對應(yīng)的時間片調(diào)度策略。
優(yōu)選地,所述采樣模塊包括:
第一計算模塊,用于對于每個虛擬機,采集當前采樣周期t內(nèi)所述虛擬機中各虛擬cpu的三級緩存缺失次數(shù)和指令執(zhí)行數(shù)量,將所述各虛擬cpu的三級緩存缺失次數(shù)求和得到所述虛擬機的總體緩存缺失次數(shù),將所述各虛擬cpu的指令執(zhí)行數(shù)量求和得到所述虛擬機的總體指令執(zhí)行數(shù)量;
第二計算模塊,用于由公式miss_ratecurr=α×總體緩存缺失次數(shù)/總體指令執(zhí)行數(shù)量,計算所述虛擬機在當前采樣周期t內(nèi)的緩存缺失率,其中α為第三預(yù)設(shè)值。
優(yōu)選地,所述檢測模塊包括:
存儲模塊,用于采用滑動窗口保存所述虛擬機在n個歷史采樣周期內(nèi)的采樣數(shù)據(jù),其中,所述采樣數(shù)據(jù)包括虛擬cpu的緩存缺失次數(shù)和指令執(zhí)行數(shù)量;
第三計算模塊,用于根據(jù)所述窗口中的采樣數(shù)據(jù)計算所述窗口的平均緩存缺失次數(shù)與平均指令執(zhí)行數(shù)量,并由公式miss_ratewindow=α×平均緩存缺失次數(shù)/平均指令執(zhí)行數(shù)量,計算所述窗口的平均緩存缺失率;
第四計算模塊,用于由公式
檢測子模塊,用于在δ在[1-ε,1+ε]之間時,表示所述并行應(yīng)用進入穩(wěn)定狀態(tài),并根據(jù)所述虛擬機在當前采樣周期t內(nèi)的緩存缺失率確定所述并行應(yīng)用處于計算階段還是通信階段,其中ε為第四預(yù)設(shè)值;
重置模塊,用于在δ不在[1-ε,1+ε]之間時,表示所述并行應(yīng)用不再處于穩(wěn)定狀態(tài),將所述窗口中的數(shù)據(jù)全部移除并重置所述窗口大小。
優(yōu)選地,所述檢測子模塊,具體用于在δ在[1-ε,1+ε]之間時,表示所述并行應(yīng)用進入穩(wěn)定狀態(tài),若miss_ratecurr大于θ,則確定所述并行應(yīng)用處于計算階段,若miss_ratecurr不大于θ,則確定所述并行應(yīng)用處于通信階段,其中θ為第五預(yù)設(shè)值。
優(yōu)選地,所述調(diào)度模塊包括:
第一判斷模塊,用于在所述并行應(yīng)用處于通信階段時,判斷上個采樣周期的虛擬機時間片是否大于預(yù)設(shè)軟邊界;
第一調(diào)度子模塊,用于在所述并行應(yīng)用處于計算階段時,相對于上個采樣周期線性增加虛擬機時間片作為當前采樣周期的虛擬機時間片;
第二調(diào)度子模塊,用于在上個采樣周期的虛擬機時間片大于所述預(yù)設(shè)軟邊界時,相對于上個采樣周期采用指數(shù)式減小方法減小虛擬機時間片作為當前采樣周期的虛擬機時間片;
第二判斷模塊,用于在上個采樣周期的虛擬機時間片不大于所述預(yù)設(shè)軟邊界時,判斷上個采樣周期的虛擬機時間片是否大于預(yù)設(shè)硬邊界;
第三調(diào)度子模塊,用于在上個采樣周期的虛擬機時間片大于所述預(yù)設(shè)硬邊界時,相對于上個采樣周期線性減小虛擬機時間片作為當前采樣周期的虛擬機時間片,否則將當前采樣周期的虛擬機時間片設(shè)置為所述預(yù)設(shè)硬邊界。
總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
(1)本發(fā)明從并行應(yīng)用的自身特點出發(fā),通過緩存缺失來檢測應(yīng)用程序的不同執(zhí)行階段并采取相應(yīng)的調(diào)度策略,一方面可以維持虛擬化層的透明性,另一方面同時考慮到了并行應(yīng)用內(nèi)核態(tài)和用戶態(tài)的同步需求,能夠適用于各種類型的并行應(yīng)用。
(2)本發(fā)明采用軟件優(yōu)化的方法,通過修改vmm的調(diào)度算法來提升并行應(yīng)用的性能,不僅適用于半虛擬化環(huán)境,同時也適用于全虛擬化環(huán)境,具有較強的通用性。
(3)本發(fā)明在單節(jié)點上進行緩存采樣分析與時間片調(diào)節(jié),當節(jié)點數(shù)量增加時,仍然能夠根據(jù)應(yīng)用特征進行自適應(yīng)的調(diào)節(jié),具有很高的擴展性
(4)本發(fā)明能夠大幅提升并行應(yīng)用在虛擬化環(huán)境下的運行效率,從而使得傳統(tǒng)環(huán)境下的高性能計算任務(wù)遷移到云端變?yōu)榭赡埽M而節(jié)省了用戶的成本。
附圖說明
圖1是本發(fā)明實施例公開的兩種不同類型的并行應(yīng)用在虛擬化環(huán)境下的應(yīng)用環(huán)境圖;
圖2是本發(fā)明實施例公開的一種基于并行應(yīng)用階段檢測的虛擬時間片調(diào)度方法的流程示意圖;
圖3是本發(fā)明實施例公開的一種并行應(yīng)用階段檢測的流程示意圖;
圖4是本發(fā)明實施例公開的一種時間片調(diào)節(jié)的流程示意圖;
圖5是本發(fā)明實施例公開的一種功能模塊圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
本發(fā)明針對并行應(yīng)用在虛擬化環(huán)境下的性能問題,提出了一種通過檢測并行應(yīng)用執(zhí)行階段來動態(tài)調(diào)節(jié)時間片的方法。通過減小時間片能夠顯著降低并行應(yīng)用的同步開銷,并且不同類型的并行應(yīng)用在運行過程中的一個共同特點是:緩存缺失和同步開銷的變化存在一種此消彼長的關(guān)系,這恰好能夠刻畫出并行應(yīng)用的特點,即計算階段和通信階段交替執(zhí)行。利用這一特點,本發(fā)明可以根據(jù)并行應(yīng)用的不同執(zhí)行階段自適應(yīng)地調(diào)節(jié)虛擬機的時間片,從而更好地滿足并行應(yīng)用的計算和通信需求并能夠顯著提升其性能。
如圖1所示,虛擬化環(huán)境下典型的并行應(yīng)用分為兩種,圖1(a)為一種單虛擬機中的共享內(nèi)存型多線程應(yīng)用,多個線程間通過同步來對共享資源進行互斥訪問;圖1(b)為另一種虛擬集群中多虛擬機之間的mpi并行應(yīng)用,多機上運行的進程間通過消息傳遞來進行同步。虛擬機監(jiān)控器vmm位于物理機和客戶機操作系統(tǒng)之間,負責管理和控制虛擬機在真實物理硬件下的運行,vmm中的vcpu調(diào)度器負責將vcpu調(diào)度到不同的物理cpu隊列中,每個vcpu都以一個固定的時間片運行。本發(fā)明在原有調(diào)度器的基礎(chǔ)上通過檢測并行應(yīng)用的不同執(zhí)行階段來動態(tài)調(diào)節(jié)虛擬機時間片,達到提高并行應(yīng)用性能的目的。
如圖2所示為本發(fā)明實施例公開的一種基于并行應(yīng)用階段檢測的虛擬時間片調(diào)度方法的流程示意圖,在圖2所示的方法中包括以下步驟:
s1、對于每個虛擬機,采集當前采樣周期t內(nèi)虛擬機中各虛擬cpu的緩存缺失信息,依據(jù)緩存缺失信息統(tǒng)計虛擬機的緩存缺失率,其中t為第一預(yù)設(shè)值;
s2、計算虛擬機的緩存缺失率相對于虛擬機的n個歷史采樣周期的平均緩存缺失率的變化率,確定虛擬機中運行的并行應(yīng)用處于計算階段還是通信階段,其中,n為第二預(yù)設(shè)值;n優(yōu)選取值為5。
s3、確定并行應(yīng)用所處的執(zhí)行階段后,采取與執(zhí)行階段對應(yīng)的時間片調(diào)度策略。大體上,在通信階段降低時間片的長度,在計算階段增加時間片的長度,使得并行應(yīng)用的計算和通信需求都可以得到充分的滿足。
作為一種可選的實施方式,步驟s1具體包括以下子步驟:
s1.1、對于每個虛擬機,采集當前采樣周期t內(nèi)虛擬機中各虛擬cpu的三級緩存缺失次數(shù)和指令執(zhí)行數(shù)量,將各虛擬cpu的三級緩存缺失次數(shù)求和得到虛擬機的總體緩存缺失次數(shù),將各虛擬cpu的指令執(zhí)行數(shù)量求和得到虛擬機的總體指令執(zhí)行數(shù)量;t優(yōu)選為1ms。
s1.2、由公式miss_ratecurr=α×總體緩存缺失次數(shù)/總體指令執(zhí)行數(shù)量,計算虛擬機在當前采樣周期t內(nèi)的緩存缺失率,其中α為第三預(yù)設(shè)值,α是一個伸縮常量,用來將miss_ratecurr放大到指定數(shù)量級,以避免在vcpu調(diào)度器中進行開銷較大的浮點運算;α優(yōu)選取值為104。
如圖3所示為本發(fā)明實施例公開的一種并行應(yīng)用階段檢測的流程示意圖,步驟s2具體子步驟如下:
s2.1、采用滑動窗口保存虛擬機在n個歷史采樣周期內(nèi)的采樣數(shù)據(jù),其中,采樣數(shù)據(jù)包括虛擬cpu的緩存缺失次數(shù)和指令執(zhí)行數(shù)量;
s2.2、根據(jù)窗口中的采樣數(shù)據(jù)計算窗口的平均緩存缺失次數(shù)與平均指令執(zhí)行數(shù)量,并由公式miss_ratewindow=α×平均緩存缺失次數(shù)/平均指令執(zhí)行數(shù)量,計算窗口的平均緩存缺失率;
s2.3、由公式
s2.4、若δ在[1-ε,1+ε]之間,則表示并行應(yīng)用進入穩(wěn)定狀態(tài),則可以將窗口中的最先加入的數(shù)據(jù)移除并將新采樣的數(shù)據(jù)加入窗口,并根據(jù)虛擬機在當前采樣周期t內(nèi)的緩存缺失率確定并行應(yīng)用處于計算階段還是通信階段,其中ε為第四預(yù)設(shè)值,ε在本發(fā)明中可以被經(jīng)驗性地設(shè)定為0.3;
其中,可以采用以下方式確定并行應(yīng)用處于計算階段還是通信階段:若miss_ratecurr大于θ,則確定并行應(yīng)用處于計算階段,若miss_ratecurr不大于θ,則確定并行應(yīng)用處于通信階段,其中θ為第五預(yù)設(shè)值,優(yōu)選地,θ在本發(fā)明中為一經(jīng)驗值0.1%。
s2.5、若δ不在[1-ε,1+ε]之間,則表示并行應(yīng)用不再處于穩(wěn)定狀態(tài),將窗口中的數(shù)據(jù)全部移除并重置窗口大小。
如圖4所示,當確定并行應(yīng)用的具體執(zhí)行階段后就可以在不同階段采取差異化的時間片調(diào)節(jié)策略,步驟s3的具體子步驟如下:
s3.1、若并行應(yīng)用處于通信階段,則判斷上個采樣周期的虛擬機時間片是否大于預(yù)設(shè)軟邊界;若并行應(yīng)用處于計算階段,則相對于上個采樣周期線性增加(例如每次增加100ms)虛擬機時間片作為當前采樣周期的虛擬機時間片;
s3.2、若上個采樣周期的虛擬機時間片大于預(yù)設(shè)軟邊界,則相對于上個采樣周期采用指數(shù)式減小方法減小虛擬機時間片作為當前采樣周期的虛擬機時間片(例如,每次調(diào)節(jié)時間片都較上次減小三倍);否則,判斷上個采樣周期的虛擬機時間片是否大于預(yù)設(shè)硬邊界;
s3.3、若上個采樣周期的虛擬機時間片大于預(yù)設(shè)硬邊界,則相對于上個采樣周期線性減小(例如每次減小100ms)虛擬機時間片作為當前采樣周期的虛擬機時間片,否則將當前采樣周期的虛擬機時間片設(shè)置為預(yù)設(shè)硬邊界。
由于時間片被減小到小于預(yù)設(shè)軟邊界時,考慮到此時應(yīng)用程序可能會對緩存缺失的變化比較敏感,此時采取較為保守的時間片調(diào)節(jié)方法,線性減小虛擬機的時間片;為防止無限制地減小時間片,本發(fā)明采取預(yù)設(shè)硬邊界控制時間片調(diào)節(jié)的下界;優(yōu)選地,預(yù)設(shè)軟邊界可以被指定為1ms,預(yù)設(shè)硬邊界可以被設(shè)定為0.3ms。
如圖5所示為本發(fā)明實施例公開的一種功能模塊圖,在圖5所示的系統(tǒng)中包括:
采樣模塊,用于對于每個虛擬機,采集當前采樣周期t內(nèi)虛擬機中各虛擬cpu的緩存缺失信息,依據(jù)緩存缺失信息統(tǒng)計所述虛擬機的緩存缺失率,其中t為第一預(yù)設(shè)值;
檢測模塊,用于計算虛擬機的緩存缺失率相對于虛擬機的n個歷史采樣周期的平均緩存缺失率的變化率,確定虛擬機中運行的并行應(yīng)用處于計算階段還是通信階段,其中,n為第二預(yù)設(shè)值;
調(diào)度模塊,用于確定并行應(yīng)用所處的執(zhí)行階段后,采取與執(zhí)行階段對應(yīng)的時間片調(diào)度策略。
其中,采樣模塊、檢測模塊以及調(diào)度模塊可以用于執(zhí)行實施例1中步驟s1至s3所述的方法,具體描述詳見實施例1對所述方法的描述,在此不再贅述。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。