一種作業(yè)調(diào)度的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種作業(yè)調(diào)度的方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有的大數(shù)據(jù)或分布式計算系統(tǒng),其作業(yè)調(diào)度均使用簡單的隊列機制,缺乏對于不同作業(yè)不同服務(wù)等級協(xié)議(SLA)的保障。
[0003]目前的大數(shù)據(jù)或分布式計算的作業(yè)調(diào)度,一般采用以下幾種隊列機制:
[0004]1、單隊列方式
[0005](I)先進先出的隊列:即各種作業(yè)按照申請資源的時間順序無差別地排隊,作業(yè)調(diào)度器按照作業(yè)的排隊順序分配資源。
[0006](2)最早完成時間的排隊策略:按照各個作業(yè)預(yù)估的執(zhí)行時間,對比空閑資源的情況,選取執(zhí)行時間最短的作業(yè)優(yōu)先執(zhí)行。
[0007]2、固定多隊列方式:
[0008]即分成多個作業(yè)隊列和多個固定的資源隊列,實現(xiàn)不同等級的任務(wù)之間互相隔離資源。
[0009]然而,現(xiàn)有的大數(shù)據(jù)或分布式計算系統(tǒng)作業(yè)調(diào)度方法,無法滿足并發(fā)多作業(yè)多SLA情況下的調(diào)度需求,如:
[0010]1、低優(yōu)先級作業(yè)正在運行時,新來的高優(yōu)先級作業(yè)搶占現(xiàn)有作業(yè)的資源運行;
[0011]2、資源爭搶發(fā)生時,作業(yè)最小資源額度得不到保障;
[0012]3、多個資源隊列之間,利用率不均衡時的資源浪費。
【發(fā)明內(nèi)容】
[0013]本發(fā)明要解決的技術(shù)問題是提供一種作業(yè)調(diào)度的方法及裝置,能夠解決多種作業(yè)實體并發(fā)執(zhí)行的情況下,實現(xiàn)不同作業(yè)實體的SLA保障,包括不同優(yōu)先級作業(yè)實體之間和相同優(yōu)先級作業(yè)實體之間的資源分配,并且實現(xiàn)資源共享和有序保障之間的平衡,既能夠保障每個作業(yè)的服務(wù)等級協(xié)議,又能夠提高整個集群資源的利用率。
[0014]為了解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:
[0015]依據(jù)本發(fā)明的一個方面,提供了一種作業(yè)調(diào)度的方法,包括:
[0016]獲取作業(yè)實體攜帶的作業(yè)實體的優(yōu)先級信息以及作業(yè)實體所需的最小資源數(shù)量;
[0017]根據(jù)作業(yè)實體的優(yōu)先級信息,將優(yōu)先級相同的多個作業(yè)實體劃分入同一作業(yè)隊列,得到至少一個作業(yè)隊列;
[0018]若每一個作業(yè)隊列中的所述作業(yè)實體被分配的資源數(shù)量小于該作業(yè)實體所需的最小資源數(shù)量時,獲取資源隊列中可用的資源,并分配給所述作業(yè)實體。
[0019]其中,若每一個作業(yè)隊列中的所述作業(yè)實體被分配的資源數(shù)量小于該作業(yè)實體所需的最小資源數(shù)量時,獲取資源隊列中可用的資源,并分配給所述作業(yè)實體的步驟包括:
[0020]按照所述隊列的優(yōu)先級順序,為每一個作業(yè)隊列分配預(yù)設(shè)數(shù)量的資源,其中所述資源為至少一個資源隊列中的可用資源;
[0021]將分配給每一個作業(yè)隊列的資源分配給該作業(yè)隊列中的作業(yè)實體;
[0022]若所述作業(yè)實體被分配的資源數(shù)量小于該作業(yè)實體所需的最小資源數(shù)量時,獲取其他資源隊列中可用的資源,并分配給所述作業(yè)實體。
[0023]其中,將分配給每一個作業(yè)隊列的資源分配給該作業(yè)隊列中的作業(yè)實體的步驟包括:
[0024]掃描所述作業(yè)隊列中的每一個作業(yè)實體,獲得未分配資源的作業(yè)實體;
[0025]計算所有未分配資源的作業(yè)實體所需的最小資源數(shù)量之和;
[0026]從分配給該作業(yè)隊列的資源中,獲取所述作業(yè)隊列對應(yīng)的可用資源數(shù)量;
[0027]比較所述作業(yè)實體所需的最小資源數(shù)量之和與所述作業(yè)隊列對應(yīng)的可用資源數(shù)量的大小,得出比較結(jié)果;
[0028]根據(jù)所述比較結(jié)果,為所述作業(yè)實體分配資源。
[0029]其中,根據(jù)所述比較結(jié)果,為所述作業(yè)實體分配資源的步驟包括:
[0030]當(dāng)所需的最小資源數(shù)量之和小于所述作業(yè)隊列對應(yīng)的可用資源數(shù)量時,為所述未分配資源的作業(yè)實體分配該作業(yè)實體所需的最小資源,并將剩余資源按照作業(yè)實體提交的時間順序分配給所述未分配資源的作業(yè)實體。
[0031]其中,根據(jù)所述比較結(jié)果,為所述作業(yè)實體分配資源的步驟包括:
[0032]當(dāng)所需的最小資源數(shù)量大于或等于所述作業(yè)隊列對應(yīng)的可用資源數(shù)量時,按所述作業(yè)實體提交的時間順序,為所述未分配資源的作業(yè)實體分配該作業(yè)實體所需的最小資源。
[0033]其中,若所述作業(yè)實體被分配的資源數(shù)量小于該作業(yè)實體所需的最小資源數(shù)量時,獲取其他資源隊列中可用的資源,并分配給所述作業(yè)實體的步驟包括:
[0034]獲取所述作業(yè)實體的最大允許執(zhí)行時間;
[0035]在所述作業(yè)實體的最大允許執(zhí)行時間內(nèi),若所述作業(yè)實體被分配的資源數(shù)量小于該作業(yè)實體所需的最小資源數(shù)量時,從可借出資源池中獲取其他資源隊列可借出的資源,并分配給所述作業(yè)實體。
[0036]其中,所述可借出資源池在該可借出資源池中的資源被分配后或者超過所述可借出資源池預(yù)設(shè)的最大租借時間時,釋放該可借出資源池所占用的空間。
[0037]依據(jù)本發(fā)明的另一個方面,還提供了一種作業(yè)調(diào)度的裝置,包括:
[0038]獲取模塊,用于獲取作業(yè)實體攜帶的作業(yè)實體的優(yōu)先級信息以及作業(yè)實體所需的最小資源數(shù)量;
[0039]規(guī)劃模塊,根據(jù)作業(yè)實體的優(yōu)先級信息,將優(yōu)先級相同的多個作業(yè)實體劃分入同一作業(yè)隊列,得到至少一個作業(yè)隊列;
[0040]資源分配模塊,若每一個作業(yè)隊列中的所述作業(yè)實體被分配的資源數(shù)量小于該作業(yè)實體所需的最小資源數(shù)量時,獲取資源隊列中可用的資源,并分配給所述作業(yè)實體。
[0041]其中,所述資源分配模塊包括:
[0042]隊列級分配單元,用于按照所述作業(yè)隊列的優(yōu)先級順序,為每一個作業(yè)隊列分配預(yù)設(shè)數(shù)量的資源,其中所述資源為至少一個資源隊列中的可用資源;
[0043]作業(yè)級分配單元,用于將分配給每一個作業(yè)隊列的資源分配給該作業(yè)隊列中的作業(yè)實體;
[0044]資源拆借單元,用于若所述作業(yè)實體被分配的資源數(shù)量小于該作業(yè)實體所需的最小資源數(shù)量時,獲取其他資源隊列中可用的資源,并分配給所述作業(yè)實體。
[0045]其中,所述作業(yè)級分配單元包括:
[0046]查詢子單元,掃描所述作業(yè)隊列中的每一個作業(yè)實體,獲得未分配資源的作業(yè)實體;
[0047]計算子單元,用于計算所有未分配資源的作業(yè)實體所需的最小資源數(shù)量之和;
[0048]獲取子單元,用于從分配給該作業(yè)隊列的資源中,獲取所述作業(yè)隊列對應(yīng)的可用資源數(shù)量;
[0049]比較子單元,用于比較所述作業(yè)實體所需的最小資源數(shù)量之和與所述作業(yè)隊列對應(yīng)的可用資源數(shù)量的大小,得出比較結(jié)果;
[0050]分配子單元,用于根據(jù)所述比較結(jié)果,為所述作業(yè)實體分配資源。
[0051]其中,所述分配子單元進一步用于:
[0052]當(dāng)所需的最小資源數(shù)量之和小于所述作業(yè)隊列對應(yīng)的可用資源數(shù)量時,為所述未分配資源的作業(yè)實體分配該作業(yè)實體所需的最小資源,并將剩余資源按照作業(yè)實體提交的時間順序分配給所述未分配資源的作業(yè)實體。
[0053]其中,所述分配子單元進一步用于:
[0054]當(dāng)所需的最小資源數(shù)量大于或等于所述作業(yè)隊列對應(yīng)的可用資源數(shù)量時,按所述作業(yè)實體提交的時間順序,為所述未分配資源的作業(yè)實體分配該作業(yè)實體所需的最小資源。
[0055]其中,所述資源拆借單元進一步用于:
[0056]獲取所述作業(yè)實體的最大允許執(zhí)行時間;
[0057]在所述作業(yè)實體的最大允許執(zhí)行時間內(nèi),若所述作業(yè)實體被分配的資源數(shù)量小于該作業(yè)實體所需的最小資源數(shù)量時,從可借出資源池中獲取其他資源隊列可借出的資源,并分配給所述作業(yè)實體。
[0058]其中,所述可借出資源池在該可借出資源池中的資源被分配后或者超過所述可借出資源池預(yù)設(shè)的最大租借時間時,釋放該可借出資源池所占用的空間。
[0059]本發(fā)明的有益效果是:
[0060]本發(fā)明的作業(yè)調(diào)度的方法,將提交的作業(yè)實體依據(jù)作業(yè)實體攜帶的優(yōu)先級信息,將優(yōu)先級相同的多個作業(yè)實體劃分入同一作業(yè)隊列,且若每一個作業(yè)隊列中的作業(yè)實體被分配的資源數(shù)量小于該作業(yè)實體所需的最小資源數(shù)量時,可獲取資源隊列中可用的資源,并分配給該作業(yè)實體。通過隊列間和隊列內(nèi)的資源動態(tài)共享,及最低額度保障,實現(xiàn)了資源共享和有序保障之間的平衡,既保障了每個作業(yè)的SLA,又提高了整個集群資源的利用率。
[0061]進一步地,為每個作業(yè)隊列按照優(yōu)先級分配預(yù)設(shè)數(shù)量的資源,進而為每個作業(yè)隊列中的作業(yè)實體分配相應(yīng)的資源,當(dāng)存在某個作業(yè)實體被分配的資源數(shù)量小于該作業(yè)實體所需的最小資源數(shù)量時,獲取資源隊列中可用的資源,并分配給該作業(yè)實體。先后通過隊列級和作業(yè)級的資源分配,解決了多種作業(yè)并發(fā)執(zhí)行的情況下,實現(xiàn)不同作業(yè)的SLA保障,包括不同優(yōu)先級作業(yè)之間、和相同優(yōu)先級作業(yè)之間的資源分配,更加適合現(xiàn)代企業(yè)分布式計算和大數(shù)據(jù)應(yīng)用的實際情況。
【附圖說明】
[0062]圖1表示本發(fā)明實施例的作業(yè)調(diào)度的方法流程示意圖;
[0063]圖2表示本發(fā)明實施例的作業(yè)調(diào)度的裝置結(jié)構(gòu)框圖;
[0064]圖3表示資源分配模塊的結(jié)構(gòu)框圖;
[0065]圖4表示作業(yè)級分配單元的結(jié)構(gòu)框圖;
[0066]圖5表示