本發(fā)明涉及電子技術(shù)領(lǐng)域,特別是涉及一種mesos管理集群中的資源分配方法、裝置及電子設(shè)備。
背景技術(shù):
mesos(分布式系統(tǒng)內(nèi)核)管理集群是由多臺服務(wù)器共同組成的,用于為外界終端執(zhí)行任務(wù)。
具體地,mesos管理集群包括主節(jié)點服務(wù)器(簡稱“主節(jié)點”)和從節(jié)點服務(wù)器(簡稱“從節(jié)點”),每個主節(jié)點連接多個從節(jié)點。每個從節(jié)點自身具有一定的執(zhí)行任務(wù)的資源(如cpu、內(nèi)存等),并實時將當(dāng)前的資源使用情況上報給主節(jié)點。主節(jié)點可接收終端發(fā)送的任務(wù)執(zhí)行請求,并根據(jù)其下從節(jié)點的資源使用情況,調(diào)度其下從節(jié)點執(zhí)行任務(wù)。
現(xiàn)有技術(shù)中,終端向主節(jié)點發(fā)送任務(wù)執(zhí)行請求時,同時會向主節(jié)點指定執(zhí)行該任務(wù)所需的資源量(即指定資源量),主節(jié)點將執(zhí)行請求和對應(yīng)的指定資源量通知給其下的從節(jié)點,從節(jié)點從自身當(dāng)前資源中分配出與指定資源量等量的資源,以執(zhí)行任務(wù)。
發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),現(xiàn)有技術(shù)至少存在如下問題:從節(jié)點執(zhí)行的任務(wù)通常為時長較長的任務(wù),例如,從節(jié)點可能需要一個月的時間執(zhí)行某一項任務(wù)。在實際情況下,終端對某個任務(wù)的指定資源量通常會大于從節(jié)點執(zhí)行該任務(wù)時使用的實際資源量,而且在從節(jié)點長時間執(zhí)行該任務(wù)的過程中,使用的實際資源量是隨時間動態(tài)變化的,實際資源量會較長的時間內(nèi)處于較低的使用狀態(tài),因此,當(dāng)實際資源量較低時,從節(jié)點分配的資源會被大量的浪費,進(jìn)而降低了mesos管理集群中的資源利用率。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種mesos管理集群中的資源分配方法、裝置及電子設(shè)備,以提高mesos管理集群中的資源利用率。
為達(dá)到上述目的,本發(fā)明實施例提供了一種mesos管理集群中的資源分配方法,所述方法包括:
確定當(dāng)前處于執(zhí)行狀態(tài)的至少一個任務(wù);
根據(jù)預(yù)定時間段內(nèi)執(zhí)行所述至少一個任務(wù)分別使用的實際資源量,確定執(zhí)行所述至少一個任務(wù)分別所需的最優(yōu)資源量;
根據(jù)所確定出的最優(yōu)資源量,計算執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量;
根據(jù)所述目標(biāo)資源量分配資源以執(zhí)行所述至少一個任務(wù)。
進(jìn)一步地,所述根據(jù)預(yù)定時間段內(nèi)執(zhí)行所述至少一個任務(wù)分別使用的實際資源量,確定執(zhí)行所述至少一個任務(wù)分別所需的最優(yōu)資源量的步驟,包括:
針對所述至少一個任務(wù)中的每一任務(wù),將預(yù)定時間段內(nèi)執(zhí)行該任務(wù)使用的實際資源量中的最大實際資源量,確定為執(zhí)行該任務(wù)所需的最優(yōu)資源量。
進(jìn)一步地,所述根據(jù)所確定出的最優(yōu)資源量,計算執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量的步驟,包括:
將所有最優(yōu)資源量的和,確定為執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
進(jìn)一步地,所述根據(jù)所確定出的最優(yōu)資源量,計算執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量的步驟,包括:
確定所述至少一個任務(wù)分別對應(yīng)的指定資源量;
根據(jù)各指定資源量,計算所述至少一個任務(wù)對應(yīng)的預(yù)留資源量;其中,所述預(yù)留資源量為max{ri-pi},ri為第i個任務(wù)對應(yīng)的指定資源量,pi為所述第i個任務(wù)對應(yīng)的最優(yōu)資源量;
將所有最優(yōu)資源量與所述預(yù)留資源量的和,確定為執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
進(jìn)一步地,所述根據(jù)所述目標(biāo)資源量分配資源以執(zhí)行所述至少一個任務(wù)的步驟,包括:
按照預(yù)設(shè)分配方式,分配資源以執(zhí)行各任務(wù);其中,所述預(yù)設(shè)分配方式為:針對所述至少一個任務(wù)中的每一任務(wù),分配執(zhí)行該任務(wù)所需最優(yōu)資源量的資源以執(zhí)行該任務(wù)的方式。
進(jìn)一步地,所述方法還包括:
通知主節(jié)點所述從節(jié)點當(dāng)前的空閑資源;其中,所述空閑資源為:所述從節(jié)點的總資源量與所述目標(biāo)資源量的差值。
本發(fā)明實施例還提供了一種mesos管理集群中的資源分配裝置,所述裝置包括:
第一確定模塊,用于確定當(dāng)前處于執(zhí)行狀態(tài)的至少一個任務(wù);
第二確定模塊,用于根據(jù)預(yù)定時間段內(nèi)執(zhí)行所述至少一個任務(wù)分別使用的實際資源量,確定執(zhí)行所述至少一個任務(wù)分別所需的最優(yōu)資源量;
計算模塊,用于根據(jù)所確定出的最優(yōu)資源量,計算執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量;
分配模塊,用于根據(jù)所述目標(biāo)資源量分配資源以執(zhí)行所述至少一個任務(wù)。
進(jìn)一步地,所述第二確定模塊,具體用于針對所述至少一個任務(wù)中的每一任務(wù),將預(yù)定時間段內(nèi)執(zhí)行該任務(wù)使用的實際資源量中的最大實際資源量,確定為執(zhí)行該任務(wù)所需的最優(yōu)資源量。
進(jìn)一步地,所述計算模塊具體用于,將所有最優(yōu)資源量的和,確定為執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
進(jìn)一步地,所述計算模塊,包括:
第一確定單元,用于確定所述至少一個任務(wù)分別對應(yīng)的指定資源量;
計算單元,用于根據(jù)各指定資源量,計算所述至少一個任務(wù)對應(yīng)的預(yù)留資源量;其中,所述預(yù)留資源量為max{ri-pi},ri為第i個任務(wù)對應(yīng)的指定資源量,pi為所述第i個任務(wù)對應(yīng)的最優(yōu)資源量;
第二確定單元,用于將所有最優(yōu)資源量與所述預(yù)留資源量的和,確定為執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
本發(fā)明實施例還提供了一種電子設(shè)備,其特征在于,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;存儲器,用于存放計算機(jī)程序;處理器,用于執(zhí)行存儲器上所存放的程序時,實現(xiàn)所述的方法步驟。
本發(fā)明實施例還提供了一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)中存儲有指令,當(dāng)其在計算機(jī)上運行時,使得計算機(jī)執(zhí)行上述任一所述的mesos管理集群中的資源分配方法。
本發(fā)明實施例還提供了一種包含指令的計算機(jī)程序產(chǎn)品,當(dāng)其在計算機(jī)上運行時,使得計算機(jī)執(zhí)行上述任一所述的mesos管理集群中的資源分配方法。
現(xiàn)有技術(shù)中,從節(jié)點會分配與指定資源量等量的資源,以執(zhí)行任務(wù),而且在從節(jié)點長時間執(zhí)行該任務(wù)的過程中,使用的實際資源量是隨時間動態(tài)變化的,當(dāng)實際資源量較低時,從節(jié)點分配的資源會被大量的浪費,進(jìn)而降低了mesos管理集群中的資源利用率。
而本發(fā)明實施例提供的一種mesos管理集群中的資源分配方法、裝置及電子設(shè)備,首先,從節(jié)點根據(jù)當(dāng)前處于執(zhí)行狀態(tài)的至少一個任務(wù)已利用的實際資源量,確定執(zhí)行至少一個任務(wù)分別所需的最優(yōu)資源量,由于實際資源量小于指定資源量,則得到的最優(yōu)資源量也小于指定資源量;然后,計算執(zhí)行該至少一個任務(wù)總共所需的目標(biāo)資源量,使得目標(biāo)資源量小于各任務(wù)對應(yīng)指定資源量的和;最后,根據(jù)目標(biāo)資源量分配資源以執(zhí)行至少一個任務(wù),從而節(jié)省了資源,使得資源的分配更加符合任務(wù)的資源需求,能夠提高mesos管理集群中的資源利用率。
附圖說明
圖1為本發(fā)明實施例提供的mesos管理集群中的資源分配方法的流程圖;
圖2為本發(fā)明實施例提供的根據(jù)所確定出的最優(yōu)資源量計算執(zhí)行至少一個任務(wù)總共所需的目標(biāo)資源量的流程圖;
圖3為本發(fā)明實施例提供的mesos管理集群中的資源分配裝置的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例提供的計算模塊的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例提供的mesos管理集群的結(jié)構(gòu)示意圖;
圖6為本發(fā)明實施例提供的電子設(shè)備的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
為達(dá)到上述目的,本發(fā)明實施例提供了一種mesos管理集群中的資源分配方法,圖1為本發(fā)明實施例提供的mesos管理集群中的資源分配方法的流程圖,該方法可應(yīng)用于從節(jié)點,所述方法包括:
s110,確定當(dāng)前處于執(zhí)行狀態(tài)的至少一個任務(wù)。
本實施例中,所述任務(wù)可以為從節(jié)點能夠執(zhí)行的任一任務(wù),當(dāng)然,所述任務(wù)為執(zhí)行時長較長的任務(wù)時,本發(fā)明實施例相對于現(xiàn)有技術(shù)的優(yōu)勢更加明顯。舉例而言:執(zhí)行時長較長的任務(wù)可以為:執(zhí)行時長的時長單位為小時、天、星期、月等非瞬時完成的任務(wù)。
具體地,從節(jié)點可同時執(zhí)行多個任務(wù)(如計算數(shù)據(jù)、下載信息或上傳信息等),從節(jié)點確定正在處于執(zhí)行狀態(tài)的所有任務(wù)中的至少一個任務(wù)。
s120,根據(jù)預(yù)定時間段內(nèi)執(zhí)行所述至少一個任務(wù)分別使用的實際資源量,確定執(zhí)行所述至少一個任務(wù)分別所需的最優(yōu)資源量。
本實施例中,所述預(yù)定時間段為:正在處于執(zhí)行狀態(tài)的至少一個任務(wù)當(dāng)前時刻之前的某一個時間段,該時間段的長度可自由設(shè)定。例如,預(yù)定時間段的長度可以為1天或1周。所述實際資源量為:從節(jié)點為執(zhí)行某一個任務(wù)時,實際使用的資源量,該實際資源量是動態(tài)變化的。
為了獲取最優(yōu)資源量,在本發(fā)明實施例的一種具體實現(xiàn)方式中,步驟s120包括:針對所述至少一個任務(wù)中的每一任務(wù),將預(yù)定時間段內(nèi)執(zhí)行該任務(wù)使用的實際資源量中的最大實際資源量,確定為執(zhí)行該任務(wù)所需的最優(yōu)資源量。
具體地,從節(jié)點可實時記錄執(zhí)行每個任務(wù)時使用的實際資源量,并分別為每個任務(wù)繪制一條實際資源量隨時間變化的曲線。以某一條曲線為例,獲取該曲線中預(yù)定時間段內(nèi)的曲線段,并將該曲線段中的最大實際資源量(即實際資源量中的最大值)確定為執(zhí)行該曲線對應(yīng)任務(wù)時所需的最優(yōu)資源量。本實施例中,將最大實際資源量作為最優(yōu)資源量,可保證分配充足的資源以執(zhí)行各任務(wù)。
s130,根據(jù)所確定出的最優(yōu)資源量,計算執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
可選地,為了計算目標(biāo)資源量,本發(fā)明實施例提供了如下兩種具體實現(xiàn)方式:
第一種具體實現(xiàn)方式:將所有最優(yōu)資源量的和,確定為執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
舉例而言,設(shè)從節(jié)點確定了三個任務(wù),執(zhí)行這三個任務(wù)時分別需要的最優(yōu)資源量為a、b和c,則計算得到的目標(biāo)資源量的大小為a+b+c。
第二種具體實現(xiàn)方式中,如圖2所示,根據(jù)所確定出的最優(yōu)資源量計算執(zhí)行至少一個任務(wù)總共所需的目標(biāo)資源量的步驟,可以包括:
s131,確定所述至少一個任務(wù)分別對應(yīng)的指定資源量。
具體地,終端向主節(jié)點發(fā)送任務(wù)執(zhí)行請求時,同時會向主節(jié)點指定資源量,主節(jié)點將指定資源量通知給從節(jié)點,從節(jié)點可獲知各任務(wù)對應(yīng)的指定資源量。
s132,根據(jù)各指定資源量,計算所述至少一個任務(wù)對應(yīng)的預(yù)留資源量。
具體地,可根據(jù)max{ri-pi}計算所述預(yù)留資源量,其中,ri為第i個任務(wù)對應(yīng)的指定資源量,pi為所述第i個任務(wù)對應(yīng)的最優(yōu)資源量。
在實際情況下,執(zhí)行任務(wù)的指定資源量通常會比最優(yōu)資源量大很多,因此對于某一個任務(wù)而言,其對應(yīng)的資源量差值(即指定資源量與最優(yōu)資源量的差值)通常為一個正數(shù)。
所述預(yù)留資源量表示的意義為:所述至少一個任務(wù)中各任務(wù)對應(yīng)的資源量差值中最大的值。舉例而言,設(shè)從節(jié)點確定了三個任務(wù),這三個任務(wù)分別對應(yīng)的資源量差值的大小關(guān)系為a2>b2>c2,則預(yù)留資源量為a2。
s133,將所有最優(yōu)資源量與所述預(yù)留資源量的和,確定為執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
舉例而言,設(shè)從節(jié)點確定了三個任務(wù),執(zhí)行這三個任務(wù)時分別需要的最優(yōu)資源量為a1、b1和c1,這三個任務(wù)對應(yīng)的預(yù)留資源量為a2,則計算得到的目標(biāo)資源量的大小為a1+b1+c1+a2。
本實施例中,將預(yù)留資源量作為目標(biāo)資源量的一部分,通過預(yù)留一部分資源,以應(yīng)對由于某個任務(wù)執(zhí)行過程中發(fā)生突發(fā)事件,導(dǎo)致執(zhí)行該任務(wù)的資源不夠用的情況出現(xiàn),從而分配預(yù)留的資源以保證該任務(wù)繼續(xù)執(zhí)行,進(jìn)一步滿足了執(zhí)行任務(wù)所需的資源,保證了任務(wù)的穩(wěn)定執(zhí)行。
s140,根據(jù)所述目標(biāo)資源量分配資源以執(zhí)行所述至少一個任務(wù)。
在本發(fā)明實施例提供的一種具體實現(xiàn)方式中,步驟s140包括:按照預(yù)設(shè)分配方式,分配資源以執(zhí)行各任務(wù);其中,所述預(yù)設(shè)分配方式為:針對所述至少一個任務(wù)中的每一任務(wù),分配執(zhí)行該任務(wù)所需最優(yōu)資源量的資源以執(zhí)行該任務(wù)的方式。
具體地,當(dāng)目標(biāo)資源量為所有最優(yōu)資源量的和時,從節(jié)點可按照每個任務(wù)所需最優(yōu)資源量的分配資源以執(zhí)行該任務(wù),即所有實際分配的資源的和等于目標(biāo)資源量。當(dāng)目標(biāo)資源量為所有最優(yōu)資源量與所述預(yù)留資源量的和時,從節(jié)點可按照每個任務(wù)所需最優(yōu)資源量的分配資源以執(zhí)行該任務(wù),即所有實際分配的資源的和小于目標(biāo)資源量。
現(xiàn)有技術(shù)中,從節(jié)點會分配與指定資源量等量的資源,以執(zhí)行任務(wù),而且在從節(jié)點長時間執(zhí)行該任務(wù)的過程中,使用的實際資源量是隨時間動態(tài)變化的,當(dāng)實際資源量較低時,從節(jié)點分配的資源會被大量的浪費,進(jìn)而降低了mesos管理集群中的資源利用率。
而本發(fā)明實施例提供的一種mesos管理集群中的資源分配方法,首先,從節(jié)點根據(jù)當(dāng)前處于執(zhí)行狀態(tài)的至少一個任務(wù)已利用的實際資源量,確定執(zhí)行至少一個任務(wù)分別所需的最優(yōu)資源量,由于實際資源量小于指定資源量,則得到的最優(yōu)資源量也小于指定資源量;然后,計算執(zhí)行該至少一個任務(wù)總共所需的目標(biāo)資源量,使得目標(biāo)資源量小于各任務(wù)對應(yīng)指定資源量的和;最后,根據(jù)目標(biāo)資源量分配資源以執(zhí)行至少一個任務(wù),從而節(jié)省了資源,使得資源的分配更加符合任務(wù)的資源需求,能夠提高mesos管理集群中的資源利用率。
在本發(fā)明提供的又一實施例中,所述方法還包括:通知主節(jié)點所述從節(jié)點當(dāng)前的空閑資源;其中,所述空閑資源為:所述從節(jié)點的總資源量與所述目標(biāo)資源量的差值。
具體地,從節(jié)點還可以通知主節(jié)點剩余的空閑資源,以等待后續(xù)主節(jié)點根據(jù)空閑資源分配任務(wù)。舉例而言,設(shè)從節(jié)點中的總資源量為t,目標(biāo)資源量為a1+b1+c1+a2,則剩余的空閑資源量為t-(a1+b1+c1+a2),從節(jié)點通知主節(jié)點剩余的空閑資源,主節(jié)點根據(jù)空閑資源的大小,分配該從節(jié)點可以執(zhí)行的任務(wù)。本發(fā)明實施例對空閑資源進(jìn)行統(tǒng)一管理,可以有效地對空閑資源加以利用,提高了資源利用率。
進(jìn)一步地,可以周期性更新預(yù)定時間段或者實時更新預(yù)定時間段,當(dāng)更新預(yù)定時間段后,計算得到的最優(yōu)資源量也會相應(yīng)更新,更新目標(biāo)資源量以及預(yù)留資源量,進(jìn)而周期性或?qū)崟r的更新空閑資源量,減小資源的駐留時間,快速的釋放潛在的空閑資源用于執(zhí)行其他任務(wù)上,更加適應(yīng)于最新時刻任務(wù)執(zhí)行時的資源分配情況,保證任務(wù)執(zhí)行的穩(wěn)定性,并有效地對空閑資源加以利用,提高了資源利用率。
圖5為本發(fā)明實施例提供的mesos管理集群的結(jié)構(gòu)示意圖,mesos管理集群中包括從節(jié)點510和主節(jié)點520,從節(jié)點510包括資源池511、執(zhí)行模塊512和監(jiān)控模塊513。
具體地,設(shè)資源池511中的總資源量為t,從節(jié)點510將總資源量t上報給主節(jié)點520,以使主節(jié)點520分配合適的任務(wù)。設(shè)主節(jié)點520將任務(wù)一、任務(wù)二分配給從節(jié)點510中的執(zhí)行模塊512,并指定從節(jié)點510執(zhí)行任務(wù)一、任務(wù)二的指定資源量分別為r1和r2。資源池511從總資源量t中分別分配出r1和r2的資源量給執(zhí)行模塊512,以使執(zhí)行模塊512執(zhí)行任務(wù)一和任務(wù)二,監(jiān)控模塊513實時監(jiān)測執(zhí)行模塊512執(zhí)行任務(wù)一和任務(wù)二時使用的實際資源量。
當(dāng)執(zhí)行模塊512執(zhí)行一段時間(如一天)后,監(jiān)控模塊513可從該時間段內(nèi)執(zhí)行任務(wù)一和任務(wù)二時分別使用的實際資源量中,查找到執(zhí)行任務(wù)一使用的最大實際資源量a1和執(zhí)行任務(wù)二使用的最大實際資源量b1,并將其通知給資源池511;資源池511以a1和b1的資源量重新分配給執(zhí)行模塊512,使執(zhí)行執(zhí)行模塊512分別執(zhí)行任務(wù)一和任務(wù)二。同時,資源池511還可以為執(zhí)行模塊512預(yù)留max{r1-a1,r2-b1}的資源量,以防止執(zhí)行模塊512在執(zhí)行任務(wù)一和任務(wù)二時,突然出現(xiàn)資源不足的情況。資源池511將當(dāng)前的空閑資源量t-max{r1-a1,r2-b1}-a1-b1釋放給主節(jié)點520,以使主節(jié)點520繼續(xù)分配要執(zhí)行的任務(wù)。
相應(yīng)于上述的方法實施例,本發(fā)明實施例還提供了一種mesos管理集群中的資源分配裝置,圖3為本發(fā)明實施例提供的mesos管理集群中的資源分配裝置的結(jié)構(gòu)示意圖,該裝置應(yīng)用于從節(jié)點,該裝置包括:
第一確定模塊310,用于確定當(dāng)前處于執(zhí)行狀態(tài)的至少一個任務(wù);
第二確定模塊320,用于根據(jù)預(yù)定時間段內(nèi)執(zhí)行所述至少一個任務(wù)分別使用的實際資源量,確定執(zhí)行所述至少一個任務(wù)分別所需的最優(yōu)資源量;
計算模塊330,用于根據(jù)所確定出的最優(yōu)資源量,計算執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量;
分配模塊340,用于根據(jù)所述目標(biāo)資源量分配資源以執(zhí)行所述至少一個任務(wù)。
現(xiàn)有技術(shù)中,從節(jié)點會分配與指定資源量等量的資源,以執(zhí)行任務(wù),而且在從節(jié)點長時間執(zhí)行該任務(wù)的過程中,使用的實際資源量是隨時間動態(tài)變化的,當(dāng)實際資源量較低時,從節(jié)點分配的資源會被大量的浪費,進(jìn)而降低了mesos管理集群中的資源利用率。
而本發(fā)明實施例提供的一種mesos管理集群中的資源分配裝置,首先,從節(jié)點根據(jù)當(dāng)前處于執(zhí)行狀態(tài)的至少一個任務(wù)已利用的實際資源量,確定執(zhí)行至少一個任務(wù)分別所需的最優(yōu)資源量,由于實際資源量小于指定資源量,則得到的最優(yōu)資源量也小于指定資源量;然后,計算執(zhí)行該至少一個任務(wù)總共所需的目標(biāo)資源量,使得目標(biāo)資源量小于各任務(wù)對應(yīng)指定資源量的和;最后,根據(jù)目標(biāo)資源量分配資源以執(zhí)行至少一個任務(wù),從而節(jié)省了資源,使得資源的分配更加符合任務(wù)的資源需求,能夠提高mesos管理集群中的資源利用率。
進(jìn)一步地,所述第二確定模塊,具體用于針對所述至少一個任務(wù)中的每一任務(wù),將預(yù)定時間段內(nèi)執(zhí)行該任務(wù)使用的實際資源量中的最大實際資源量,確定為執(zhí)行該任務(wù)所需的最優(yōu)資源量。
進(jìn)一步地,所述計算模塊具體用于,將所有最優(yōu)資源量的和,確定為執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
圖4為本發(fā)明實施例提供的計算模塊的結(jié)構(gòu)示意圖,所述計算模塊330包括:
第一確定單元331,用于確定所述至少一個任務(wù)分別對應(yīng)的指定資源量;
計算單元332,用于根據(jù)各指定資源量,計算所述至少一個任務(wù)對應(yīng)的預(yù)留資源量;其中,所述預(yù)留資源量為max{ri-pi},ri為第i個任務(wù)對應(yīng)的指定資源量,pi為所述第i個任務(wù)對應(yīng)的最優(yōu)資源量;
第二確定單元333,用于將所有最優(yōu)資源量與所述預(yù)留資源量的和,確定為執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
本實施例中,將預(yù)留資源量作為目標(biāo)資源量的一部分,通過預(yù)留一部分資源,以應(yīng)對由于某個任務(wù)執(zhí)行過程中發(fā)生突發(fā)事件,導(dǎo)致執(zhí)行該任務(wù)的資源不夠用的情況出現(xiàn),從而分配預(yù)留的資源以保證該任務(wù)繼續(xù)執(zhí)行,進(jìn)一步滿足了執(zhí)行任務(wù)所需的資源,保證了任務(wù)的穩(wěn)定執(zhí)行。
進(jìn)一步地,所述分配模塊具體用于,按照預(yù)設(shè)分配方式,分配資源以執(zhí)行各任務(wù);其中,所述預(yù)設(shè)分配方式為:針對所述至少一個任務(wù)中的每一任務(wù),分配執(zhí)行該任務(wù)所需最優(yōu)資源量的資源以執(zhí)行該任務(wù)的方式。
進(jìn)一步地,所述裝置還包括:通知模塊,用于通知主節(jié)點所述從節(jié)點當(dāng)前的空閑資源;其中,所述空閑資源為:所述從節(jié)點的總資源量與所述目標(biāo)資源量的差值。
本發(fā)明實施例還提供了一種電子設(shè)備,如圖6所示,圖6為本發(fā)明實施例提供的電子設(shè)備的結(jié)構(gòu)示意圖,電子設(shè)備包括處理器610、通信接口620、存儲器630和通信總線640,其中,處理器610,通信接口620,存儲器630通過通信總線640完成相互間的通信,
存儲器630,用于存放計算機(jī)程序;
處理器610,用于執(zhí)行存儲器630上所存放的程序時,實現(xiàn)如下步驟:
確定當(dāng)前處于執(zhí)行狀態(tài)的至少一個任務(wù);
根據(jù)預(yù)定時間段內(nèi)執(zhí)行所述至少一個任務(wù)分別使用的實際資源量,確定執(zhí)行所述至少一個任務(wù)分別所需的最優(yōu)資源量;
根據(jù)所確定出的最優(yōu)資源量,計算執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量;
根據(jù)所述目標(biāo)資源量分配資源以執(zhí)行所述至少一個任務(wù)。
現(xiàn)有技術(shù)中,從節(jié)點會分配與指定資源量等量的資源,以執(zhí)行任務(wù),而且在從節(jié)點長時間執(zhí)行該任務(wù)的過程中,使用的實際資源量是隨時間動態(tài)變化的,當(dāng)實際資源量較低時,從節(jié)點分配的資源會被大量的浪費,進(jìn)而降低了mesos管理集群中的資源利用率。
而本發(fā)明實施例提供的電子設(shè)備,首先,從節(jié)點根據(jù)當(dāng)前處于執(zhí)行狀態(tài)的至少一個任務(wù)已利用的實際資源量,確定執(zhí)行至少一個任務(wù)分別所需的最優(yōu)資源量,由于實際資源量小于指定資源量,則得到的最優(yōu)資源量也小于指定資源量;然后,計算執(zhí)行該至少一個任務(wù)總共所需的目標(biāo)資源量,使得目標(biāo)資源量小于各任務(wù)對應(yīng)指定資源量的和;最后,根據(jù)目標(biāo)資源量分配資源以執(zhí)行至少一個任務(wù),從而節(jié)省了資源,使得資源的分配更加符合任務(wù)的資源需求,能夠提高mesos管理集群中的資源利用率。
在本發(fā)明提供的又一實施例中,所述處理器610,用于針對所述至少一個任務(wù)中的每一任務(wù),將預(yù)定時間段內(nèi)執(zhí)行該任務(wù)使用的實際資源量中的最大實際資源量,確定為執(zhí)行該任務(wù)所需的最優(yōu)資源量。
在本發(fā)明提供的又一實施例中,所述處理器610,用于將所有最優(yōu)資源量的和,確定為執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
在本發(fā)明提供的又一實施例中,所述處理器610,用于確定所述至少一個任務(wù)分別對應(yīng)的指定資源量;根據(jù)各指定資源量,計算所述至少一個任務(wù)對應(yīng)的預(yù)留資源量;其中,所述預(yù)留資源量為max{ri-pi},ri為第i個任務(wù)對應(yīng)的指定資源量,pi為所述第i個任務(wù)對應(yīng)的最優(yōu)資源量;將所有最優(yōu)資源量與所述預(yù)留資源量的和,確定為執(zhí)行所述至少一個任務(wù)總共所需的目標(biāo)資源量。
在本發(fā)明提供的又一實施例中,所述處理器610,用于按照預(yù)設(shè)分配方式,分配資源以執(zhí)行各任務(wù);其中,所述預(yù)設(shè)分配方式為:針對所述至少一個任務(wù)中的每一任務(wù),分配執(zhí)行該任務(wù)所需最優(yōu)資源量的資源以執(zhí)行該任務(wù)的方式。
在本發(fā)明提供的又一實施例中,所述處理器610,通知主節(jié)點所述從節(jié)點當(dāng)前的空閑資源;其中,所述空閑資源為:所述從節(jié)點的總資源量與所述目標(biāo)資源量的差值。
上述電子設(shè)備提到的通信總線可以是外設(shè)部件互連標(biāo)準(zhǔn)(peripheralpomponentinterconnect,簡稱pci)總線或擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(extendedindustrystandardarchitecture,簡稱eisa)總線等。該通信總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。
通信接口用于上述電子設(shè)備與其他設(shè)備之間的通信。
存儲器可以包括隨機(jī)存取存儲器(randomaccessmemory,簡稱ram),也可以包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。可選的,存儲器還可以是至少一個位于遠(yuǎn)離前述處理器的存儲裝置。
上述的處理器可以是通用處理器,包括中央處理器(centralprocessingunit,簡稱cpu)、網(wǎng)絡(luò)處理器(networkprocessor,簡稱np)等;還可以是數(shù)字信號處理器(digitalsignalprocessing,簡稱dsp)、專用集成電路(applicationspecificintegratedcircuit,簡稱asic)、現(xiàn)場可編程門陣列(field-programmablegatearray,簡稱fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。
在本發(fā)明提供的又一實施例中,還提供了一種計算機(jī)可讀存儲介質(zhì),該計算機(jī)可讀存儲介質(zhì)中存儲有指令,當(dāng)其在計算機(jī)上運行時,使得計算機(jī)執(zhí)行上述實施例中任一所述的mesos管理集群中的資源分配方法。
在本發(fā)明提供的又一實施例中,還提供了一種包含指令的計算機(jī)程序產(chǎn)品,當(dāng)其在計算機(jī)上運行時,使得計算機(jī)執(zhí)行上述任一所述的mesos管理集群中的資源分配方法。
在上述實施例中,可以全部或部分地通過軟件、硬件、固件或者其任意組合來實現(xiàn)。當(dāng)使用軟件實現(xiàn)時,可以全部或部分地以計算機(jī)程序產(chǎn)品的形式實現(xiàn)。所述計算機(jī)程序產(chǎn)品包括一個或多個計算機(jī)指令。在計算機(jī)上加載和執(zhí)行所述計算機(jī)程序指令時,全部或部分地產(chǎn)生按照本發(fā)明實施例所述的流程或功能。所述計算機(jī)可以是通用計算機(jī)、專用計算機(jī)、計算機(jī)網(wǎng)絡(luò)、或者其他可編程裝置。所述計算機(jī)指令可以存儲在計算機(jī)可讀存儲介質(zhì)中,或者從一個計算機(jī)可讀存儲介質(zhì)向另一個計算機(jī)可讀存儲介質(zhì)傳輸,例如,所述計算機(jī)指令可以從一個網(wǎng)站站點、計算機(jī)、服務(wù)器或數(shù)據(jù)中心通過有線(例如同軸電纜、光纖、數(shù)字用戶線(dsl))或無線(例如紅外、無線、微波等)方式向另一個網(wǎng)站站點、計算機(jī)、服務(wù)器或數(shù)據(jù)中心進(jìn)行傳輸。所述計算機(jī)可讀存儲介質(zhì)可以是計算機(jī)能夠存取的任何可用介質(zhì)或者是包含一個或多個可用介質(zhì)集成的服務(wù)器、數(shù)據(jù)中心等數(shù)據(jù)存儲設(shè)備。所述可用介質(zhì)可以是磁性介質(zhì),(例如,軟盤、硬盤、磁帶)、光介質(zhì)(例如,dvd)、或者半導(dǎo)體介質(zhì)(例如固態(tài)硬盤solidstatedisk(ssd))等。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。