本發(fā)明涉及容器任務(wù)技術(shù)領(lǐng)域,特別是涉及一種容器任務(wù)調(diào)度方法及裝置。
背景技術(shù):
目前,隨著容器技術(shù)的興起,越來(lái)越多的軟件系統(tǒng)開始采用以容器的形式分發(fā)和部署。在基于容器的任務(wù)處理系統(tǒng)中,容器的調(diào)度器擔(dān)負(fù)著將用戶請(qǐng)求分發(fā)至物理服務(wù)器的職責(zé),調(diào)度器既要保證所有的用戶任務(wù)都得到處理,又要確保分發(fā)到每個(gè)服務(wù)器的任務(wù)總和不超過(guò)每個(gè)服務(wù)器的計(jì)算能力,還要追求總體成本最低,為滿足以上三個(gè)需求,調(diào)度算法的研發(fā)成為容器技術(shù)落地的關(guān)鍵環(huán)節(jié),目前容器任務(wù)的成本都較高,如何節(jié)省成本是亟待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種容器任務(wù)調(diào)度方法及裝置,以實(shí)現(xiàn)節(jié)省成本。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種容器任務(wù)調(diào)度方法,該方法包括:
建立容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型;
依據(jù)容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型,將容器任務(wù)調(diào)度問(wèn)題轉(zhuǎn)換為整數(shù)線性規(guī)劃問(wèn)題;
采用求解算法對(duì)整數(shù)線性規(guī)劃問(wèn)題進(jìn)行求解,得到求解結(jié)果。
優(yōu)選的,所述采用求解算法對(duì)整數(shù)線性規(guī)劃問(wèn)題進(jìn)行求解,得到求解結(jié)果之后,還包括:
依據(jù)求解結(jié)果對(duì)容器任務(wù)進(jìn)行調(diào)度。
優(yōu)選的,所述求解算法包括:割平面法、分枝定界法和隱枚舉法。
優(yōu)選的,依據(jù)容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模塊,將容器任務(wù)調(diào)度問(wèn)題轉(zhuǎn)換為整數(shù)線性規(guī)劃問(wèn)題之后,還包括:
采用線性規(guī)劃標(biāo)準(zhǔn)式設(shè)置容器任務(wù)調(diào)度的需求。
本發(fā)明還提供一種容器任務(wù)調(diào)度裝置,用于實(shí)現(xiàn)所述容器任務(wù)調(diào)度方法,該裝置包括:
建立模塊,用于建立容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型;
轉(zhuǎn)換模塊,用于依據(jù)容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型,將容器任務(wù)調(diào)度問(wèn)題轉(zhuǎn)換為整數(shù)線性規(guī)劃問(wèn)題;
求解模塊,用于采用求解算法對(duì)整數(shù)線性規(guī)劃問(wèn)題進(jìn)行求解,得到求解結(jié)果。
優(yōu)選的,所述裝置還包括:
調(diào)度模塊,用于依據(jù)求解結(jié)果對(duì)容器任務(wù)進(jìn)行調(diào)度。
優(yōu)選的,所述求解算法包括:割平面法、分枝定界法和隱枚舉法。
優(yōu)選的,所述轉(zhuǎn)換模塊還包括:
設(shè)置單元,用于設(shè)置采用線性規(guī)劃標(biāo)準(zhǔn)式設(shè)置容器任務(wù)調(diào)度的需求。
本發(fā)明所提供的一種容器任務(wù)調(diào)度方法及裝置,建立容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型;依據(jù)容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型,將容器任務(wù)調(diào)度問(wèn)題轉(zhuǎn)換為整數(shù)線性規(guī)劃問(wèn)題;采用求解算法對(duì)整數(shù)線性規(guī)劃問(wèn)題進(jìn)行求解,得到求解結(jié)果??梢?,將容器任務(wù)調(diào)度問(wèn)題規(guī)范化為一個(gè)整數(shù)線性規(guī)劃問(wèn)題,通過(guò)改造經(jīng)典的倉(cāng)庫(kù)選配問(wèn)題,以逆向思維的方法,用線性規(guī)劃標(biāo)準(zhǔn)范式表示容器任務(wù)調(diào)度的需求,進(jìn)而,容器任務(wù)調(diào)度問(wèn)題便可以采用割平面法、分枝定界法或隱枚舉法等方法求解,通過(guò)對(duì)容器任務(wù)的調(diào)度,在滿足用戶任務(wù)全部執(zhí)行且物理服務(wù)器不超載的條件下,實(shí)現(xiàn)總體成本最低,節(jié)省成本。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明所提供的一種容器任務(wù)調(diào)度方法的流程圖;
圖2為倉(cāng)庫(kù)選配問(wèn)題示意圖;
圖3為容器任務(wù)問(wèn)題示意圖;
圖4為本發(fā)明所提供的一種容器任務(wù)調(diào)度裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種容器任務(wù)調(diào)度方法及裝置,以實(shí)現(xiàn)節(jié)省成本。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參考圖1,圖1為本發(fā)明所提供的一種容器任務(wù)調(diào)度方法的流程,該方法包括:
S11:建立容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型;
S12:依據(jù)容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型,將容器任務(wù)調(diào)度問(wèn)題轉(zhuǎn)換為整數(shù)線性規(guī)劃問(wèn)題;
S13:采用求解算法對(duì)整數(shù)線性規(guī)劃問(wèn)題進(jìn)行求解,得到求解結(jié)果。
可見,該方法將容器任務(wù)調(diào)度問(wèn)題規(guī)范化為一個(gè)整數(shù)線性規(guī)劃問(wèn)題,通過(guò)改造經(jīng)典的倉(cāng)庫(kù)選配問(wèn)題,以逆向思維的方法,用線性規(guī)劃標(biāo)準(zhǔn)范式表示容器任務(wù)調(diào)度的需求,進(jìn)而,容器任務(wù)調(diào)度問(wèn)題便可以采用割平面法、分枝定界法或隱枚舉法等方法求解,通過(guò)對(duì)容器任務(wù)的調(diào)度,在滿足用戶任務(wù)全部執(zhí)行且物理服務(wù)器不超載的條件下,實(shí)現(xiàn)總體成本最低,節(jié)省成本。
基于上述方法,其中,該方法用于調(diào)度器。
進(jìn)一步的,步驟S13之后,還包括:依據(jù)求解結(jié)果對(duì)容器任務(wù)進(jìn)行調(diào)度。
其中,求解算法包括:割平面法、分枝定界法和隱枚舉法。
進(jìn)一步的,步驟S12中,依據(jù)容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模塊,將容器任務(wù)調(diào)度問(wèn)題轉(zhuǎn)換為整數(shù)線性規(guī)劃問(wèn)題之后,還包括:采用線性規(guī)劃標(biāo)準(zhǔn)式設(shè)置容器任務(wù)調(diào)度的需求。
其中,容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型如下:
其中,第i個(gè)服務(wù)器被啟用時(shí)產(chǎn)生的固定費(fèi)用為ai,用戶j到服務(wù)器i的單位任務(wù)傳輸費(fèi)用為cij,服務(wù)器i的最高計(jì)算能力為bi,用戶j的計(jì)算需求量是dj。變量xij表示從用戶j傳輸?shù)椒?wù)器i的任務(wù)量。
變量yi如下:
其中,整數(shù)線性規(guī)劃問(wèn)題如下:
本方法中,將容器任務(wù)調(diào)度問(wèn)題規(guī)范化為一個(gè)整數(shù)線性規(guī)劃問(wèn)題,通過(guò)改造經(jīng)典的倉(cāng)庫(kù)選配問(wèn)題,以逆向思維的方法,用線性規(guī)劃標(biāo)準(zhǔn)范式表示容器任務(wù)調(diào)度的需求。進(jìn)而,容器任務(wù)調(diào)度問(wèn)題便可以采用割平面法、分枝定界法或隱枚舉法等方法求解。通過(guò)對(duì)容器任務(wù)的調(diào)度,在滿足用戶任務(wù)全部執(zhí)行且物理服務(wù)器不超載的條件下,實(shí)現(xiàn)總體費(fèi)用最低,具有很高的實(shí)用意義和商業(yè)價(jià)值。
容器任務(wù)調(diào)度方法將容器任務(wù)調(diào)度方法規(guī)范化為一個(gè)整數(shù)線性規(guī)劃問(wèn)題。具體來(lái)說(shuō),以逆向解決倉(cāng)庫(kù)選配問(wèn)題的方式方法解決容器任務(wù)調(diào)度方法。以逆向思維的方式,將容器任務(wù)調(diào)度問(wèn)題規(guī)范化為一個(gè)倉(cāng)庫(kù)選配問(wèn)題。針對(duì)用戶發(fā)起的任務(wù)請(qǐng)求,調(diào)度器選擇在哪些服務(wù)器上開啟容器執(zhí)行任務(wù)請(qǐng)求,以及在每臺(tái)服務(wù)器上各執(zhí)行幾個(gè)子任務(wù)。綜合考慮服務(wù)器開啟的費(fèi)用,及任務(wù)從用戶端傳輸?shù)椒?wù)器端的費(fèi)用,通過(guò)分枝界定方法,求解總費(fèi)用最低的調(diào)度方法。
詳細(xì)的,首先,根據(jù)圖2描述倉(cāng)庫(kù)選配問(wèn)題;然后根據(jù)圖3描述容器任務(wù)調(diào)度問(wèn)題;最后,給出基于線性規(guī)劃的容器任務(wù)調(diào)度問(wèn)題解法。
如圖2,在m個(gè)倉(cāng)庫(kù)中選擇若干個(gè)倉(cāng)庫(kù)調(diào)出貨物以滿足n個(gè)用戶的需求。已知第i個(gè)倉(cāng)庫(kù)被動(dòng)用時(shí)產(chǎn)生的固定費(fèi)用為ai,倉(cāng)庫(kù)i到用戶j的單位貨物運(yùn)輸費(fèi)用為cij,倉(cāng)庫(kù)i的貨物存儲(chǔ)量為bi,用戶j對(duì)貨物的需求量是dj。則應(yīng)如何決策,動(dòng)用哪些倉(cāng)庫(kù)和各倉(cāng)庫(kù)到各用戶運(yùn)多少貨物,才能既滿足用戶需要,又使總費(fèi)用即倉(cāng)庫(kù)啟用費(fèi)用加貨物運(yùn)輸費(fèi)最低?
基于容器的任務(wù)調(diào)度場(chǎng)景,如圖3所示,將倉(cāng)庫(kù)類比為服務(wù)器、貨物類比為要處理的計(jì)算任務(wù)。在倉(cāng)庫(kù)選配問(wèn)題中,貨物從倉(cāng)庫(kù)傳輸至客戶;而在容器任務(wù)調(diào)度問(wèn)題中,以相反的方向,計(jì)算任務(wù)從用戶端調(diào)度到服務(wù)器,服務(wù)器以容器的形式執(zhí)行計(jì)算任務(wù)。設(shè)第i個(gè)服務(wù)器被啟用時(shí)產(chǎn)生的固定費(fèi)用為ai,用戶j到服務(wù)器i的單位任務(wù)傳輸費(fèi)用為cij,服務(wù)器i的最高計(jì)算能力為bi,用戶j的計(jì)算需求量是dj。則問(wèn)題變?yōu)椋簯?yīng)如何決策,啟用哪些服務(wù)器和用戶向各個(gè)服務(wù)器傳輸多少任務(wù),才能既滿足用戶需要,又使總費(fèi)用(服務(wù)器啟用費(fèi)用加任務(wù)傳輸費(fèi)用)最低?
令變量yi如下:
另變量xij表示從用戶j傳輸?shù)椒?wù)器i的任務(wù)量,則上述容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型可表述為:
其中,第一組約束條件表示每個(gè)用戶的計(jì)算需求都必須滿足;第二組約束條件表示不能超出服務(wù)器i的最大負(fù)載能力。
將以上問(wèn)題轉(zhuǎn)化為標(biāo)準(zhǔn)形式:
采用分枝定界法求解以上問(wèn)題,基本步驟如下:
步驟一:另原問(wèn)題I0的對(duì)應(yīng)松弛問(wèn)題為L(zhǎng)0,若L0有可行解,但目標(biāo)函數(shù)在可行域上無(wú)上下界,則原問(wèn)題無(wú)最優(yōu)解,解算結(jié)束。否則,進(jìn)入步驟二。
步驟二:檢查是否有活問(wèn)題,若沒(méi)有,轉(zhuǎn)步驟五;若有,選取一個(gè)活問(wèn)題Ik,并接步驟三。
步驟三:檢測(cè)對(duì)應(yīng)松弛問(wèn)題Lk的求解結(jié)果。
步驟四:選取x(k)的一個(gè)非整數(shù)基分量xs(k),用添加約束或的辦法把Ik劃分為兩個(gè)新的部分問(wèn)題。令這兩個(gè)新的部分問(wèn)題為活問(wèn)題,并解對(duì)應(yīng)的松弛問(wèn)題,然后返回步驟二。
步驟五:查看現(xiàn)有最好解和現(xiàn)有最小值,若它們分別是和∞,則原問(wèn)題無(wú)可行解;否則,現(xiàn)有最好解和現(xiàn)有最小值就是原問(wèn)題的最優(yōu)解和最優(yōu)值,解算結(jié)束。請(qǐng)參考圖4,圖4為本發(fā)明所提供的一種容器任務(wù)調(diào)度裝置的結(jié)構(gòu)示意圖,用于實(shí)現(xiàn)上述容器任務(wù)調(diào)度方法,該裝置包括:
建立模塊101,用于建立容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型;
轉(zhuǎn)換模塊102,用于依據(jù)容器任務(wù)調(diào)度問(wèn)題的數(shù)學(xué)模型,將容器任務(wù)調(diào)度問(wèn)題轉(zhuǎn)換為整數(shù)線性規(guī)劃問(wèn)題;
求解模塊103,用于采用求解算法對(duì)整數(shù)線性規(guī)劃問(wèn)題進(jìn)行求解,得到求解結(jié)果。
可見,該裝置將容器任務(wù)調(diào)度問(wèn)題規(guī)范化為一個(gè)整數(shù)線性規(guī)劃問(wèn)題,通過(guò)改造經(jīng)典的倉(cāng)庫(kù)選配問(wèn)題,以逆向思維的方法,用線性規(guī)劃標(biāo)準(zhǔn)范式表示容器任務(wù)調(diào)度的需求,進(jìn)而,容器任務(wù)調(diào)度問(wèn)題便可以采用割平面法、分枝定界法或隱枚舉法等方法求解,通過(guò)對(duì)容器任務(wù)的調(diào)度,在滿足用戶任務(wù)全部執(zhí)行且物理服務(wù)器不超載的條件下,實(shí)現(xiàn)總體成本最低,節(jié)省成本。
其中,該裝置用于調(diào)度器。
進(jìn)一步的,所述裝置還包括:調(diào)度模塊,用于依據(jù)求解結(jié)果對(duì)容器任務(wù)進(jìn)行調(diào)度。
其中,求解算法包括:割平面法、分枝定界法和隱枚舉法。
進(jìn)一步的,轉(zhuǎn)換模塊還包括:設(shè)置單元,用于設(shè)置采用線性規(guī)劃標(biāo)準(zhǔn)式設(shè)置容器任務(wù)調(diào)度的需求。
以上對(duì)本發(fā)明所提供的一種容器任務(wù)調(diào)度方法及裝置進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。