專利名稱:確定作業(yè)的調(diào)度優(yōu)先級(jí)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及合理的份額調(diào)度(fair share scheduling),并且具體 地涉及確定作業(yè)調(diào)度優(yōu)先級(jí)用于合理的份額調(diào)度,其是基于處理環(huán)境中單 個(gè)用戶的多種類型的所管理資源的使用量。
背景技術(shù):
合理的份額調(diào)度是工作負(fù)荷管理產(chǎn)品中的功能特征。在諸如集群化環(huán) 境之類的分布式處理環(huán)境中,工作負(fù)荷管理軟件產(chǎn)品被用于調(diào)度用戶程序 或作業(yè)以在所述環(huán)境中的各種機(jī)器上運(yùn)行。合理的份額調(diào)度使決策朝著下 面的方向進(jìn)行才艮據(jù)預(yù)定義的比例在用戶或用戶組之間分配處理環(huán)境的處 理資源。
在合理的份額調(diào)度中,用戶或用戶組被分配某個(gè)比例的環(huán)境資源,并
的資源相比而言所述用戶或用戶組所使用的資源量。因此, 一個(gè)用戶或用 戶組的作業(yè)調(diào)度優(yōu)先級(jí)依賴于其它用戶所消耗的資源量。資源的比例常常 被表述為占總計(jì)資源使用量的百分比。
這種基于其它用戶的資源消耗的調(diào)度可能產(chǎn)生針對(duì)單個(gè)用戶的不穩(wěn)定 和不理想的作業(yè)調(diào)度。這種調(diào)度可能是不穩(wěn)定的,因?yàn)樗蕾囉诳赡茉谌?何時(shí)間點(diǎn)處發(fā)生急劇變化的其它用戶的工作負(fù)荷。同樣,它是不理想的, 因?yàn)橛脩糇鳂I(yè)的調(diào)度是基于其它用戶的資源消耗來進(jìn)行的。
在合理的份額調(diào)度中,歷史的資源使用量隨著時(shí)間而衰減,從而使最 近所使用的資源對(duì)調(diào)度決策具有更大的影響。必需有一種用于記錄并衰減 歷史的資源使用量的機(jī)制,并且它常常是通過一種在許多有限長(zhǎng)度的近期 時(shí)間間隔上的逐步衰減函數(shù)來實(shí)現(xiàn)。對(duì)于具有許多用戶的集群,大量歷史 的資源使用量數(shù)據(jù)可能需要被跟蹤。
發(fā)明內(nèi)容
基于前面所述內(nèi)容,存在下述需求,即,對(duì)于單個(gè)用戶或用戶組而言 更穩(wěn)定且合理的增強(qiáng)的合理的份額調(diào)度能力。同樣,存在下述需求,即, 使衰減機(jī)制簡(jiǎn)化并使要跟蹤的歷史的資源使用量數(shù)據(jù)的量最小的方法。此 外,還存在下述需求,即,對(duì)不同作業(yè)類型進(jìn)行合理的份額調(diào)度,所述不 同作業(yè)類型可以以不同的比例使用處理環(huán)境的一種或多種類型的資源。
通過提供一種在具有多個(gè)耦合的處理單元的集群化處理環(huán)境中確定不 同類型作業(yè)的調(diào)度優(yōu)先級(jí)的方法以便利于工作負(fù)荷管理,克服了現(xiàn)有技術(shù) 的缺點(diǎn)并提供了另外的優(yōu)點(diǎn)。所述方法包括例如將集群化處理環(huán)境中的眾 多所管理資源類型中的多個(gè)所管理資源類型中的每個(gè)所管理資源類型的一 個(gè)或多個(gè)份額分配給所述集群化處理環(huán)境中的至少一個(gè)用戶實(shí)體。所述方 法還包括針對(duì)所述至少一個(gè)用戶實(shí)體中的一個(gè)用戶實(shí)體所提交的后續(xù)作業(yè) 指派作業(yè)優(yōu)先級(jí),其中所述作業(yè)優(yōu)先級(jí)是基于所述后續(xù)作業(yè)的類型屬性以 及所述用戶實(shí)體的所述多個(gè)所管理資源類型中的至少一個(gè)所管理資源類型 的剩余份額的數(shù)量。
在此還描述并要求保護(hù)對(duì)應(yīng)于上面所概述的方法的系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。
通過本發(fā)明的技術(shù)實(shí)現(xiàn)了另外的特征和優(yōu)點(diǎn)。本發(fā)明的其它實(shí)施例以 及方面在此被詳細(xì)地描述并被認(rèn)為是所要求保護(hù)的本發(fā)明的 一部分。
本發(fā)明的一個(gè)或多個(gè)方面被特別地指出來并且在本說明書的結(jié)尾處在 權(quán)利要求中作為例子被明確地要求保護(hù)。參照以下結(jié)合附圖所做的詳細(xì)描
述,本發(fā)明的前述以及其它對(duì)象、特征、和優(yōu)點(diǎn)是顯而易見的,在附圖中 圖1描繪了并入并使用本發(fā)明的一個(gè)或多個(gè)方面的處理環(huán)境的一個(gè)實(shí) 施例;
圖2描繪了4艮據(jù)本發(fā)明的一個(gè)方面的針對(duì)混合的機(jī)器集群的合理的份
額調(diào)度的初始化過程的流程圖3描繪了才艮據(jù)本發(fā)明的一個(gè)方面的、在集群化處理環(huán)境里確定作業(yè) 調(diào)度優(yōu)先級(jí)以便利于工作負(fù)荷管理的一個(gè)實(shí)施例里與所管理資源類型相關(guān) 聯(lián)的數(shù)據(jù)的例子;
圖4描繪了根據(jù)本發(fā)明的一個(gè)方面的、在集群化處理環(huán)境里確定作業(yè) 調(diào)度優(yōu)先級(jí)以便利于工作負(fù)荷管理的一個(gè)實(shí)施例里與所管理資源類型相關(guān) 聯(lián)的數(shù)據(jù)的另一例子;
圖5描繪了根據(jù)本發(fā)明的一個(gè)方面的被用于將所管理資源類型的份額 分配給用戶實(shí)體的邏輯的一個(gè)實(shí)施例;
圖6描繪了根據(jù)本發(fā)明的一個(gè)方面的、用于在集群化處理環(huán)境里確定 作業(yè)調(diào)度優(yōu)先級(jí)用于對(duì)多種資源類型進(jìn)行合理的份額調(diào)度的過程的若干方 面;
圖7描繪了根據(jù)本發(fā)明的一個(gè)方面的、在集群化處理環(huán)境中利用確定 作業(yè)調(diào)度優(yōu)先級(jí)的技術(shù)對(duì)作業(yè)進(jìn)行合理的份額調(diào)度的過程的一個(gè)實(shí)施例;
圖8描繪了根據(jù)本發(fā)明的一個(gè)方面的與更新作業(yè)等待隊(duì)列中的作業(yè)調(diào) 度相關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例;
圖9描繪了根據(jù)本發(fā)明的一個(gè)方面的資源類型量隨時(shí)間的衰減值;
圖10是根據(jù)本發(fā)明的一個(gè)方面的對(duì)資源類型量隨時(shí)間的衰減值的另 一描繪;
圖11描繪了根據(jù)本發(fā)明的 一個(gè)方面的、與累積資源類型使用量用于合 理的份額調(diào)度相關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例;以及
圖12描繪了并入本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)程序產(chǎn)品的一個(gè)例子。
具體實(shí)施例方式
本發(fā)明的一個(gè)方面提供合理的份額調(diào)度,用于在具有多種類型的資源 和多種作業(yè)類型的混合集群處理環(huán)境中進(jìn)行工作負(fù)荷管理。針對(duì)每類待管 理的資源,在混合的機(jī)器集群中可用的每類資源的量被劃分成許多總計(jì)份
額(total shares)。針對(duì)每類所管理的資源,使用所述集群的每個(gè)用戶或
組可以凈皮分配某種數(shù)量的總計(jì)份額。每個(gè)用戶和組針對(duì)每類所管理的資源 的使用量被跟蹤并被轉(zhuǎn)換成已使用的份額。對(duì)于每個(gè)用戶和組,針對(duì)每類 資源的已使用的份額和已分配的份額的數(shù)量被用于朝著合理的份額調(diào)度的 方向來影響作業(yè)調(diào)度優(yōu)先級(jí)。因?yàn)椴煌淖鳂I(yè)類型可以以不同的比例利用 所述集群化處理環(huán)境中的所管理的資源類型,所以等待執(zhí)行的已排隊(duì)作業(yè) 的作業(yè)類型被用作確定已排隊(duì)作業(yè)的作業(yè)調(diào)度優(yōu)先級(jí)的一個(gè)因素。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種合理的份額調(diào)度能力,其能實(shí)現(xiàn) 對(duì)單個(gè)用戶或用戶組的作業(yè)的穩(wěn)定且合理的調(diào)度。所述調(diào)度除了取決于對(duì) 于所述單個(gè)用戶或用戶組的資源分配和使用量外還取決于作業(yè)的類型(其 可以指示出執(zhí)行時(shí)所需的資源類型),而不是取決于對(duì)于其他用戶或用戶 組的資源分配和資源使用量。對(duì)混合處理環(huán)境中的每類可用資源的度量被 劃分成許多份額。這些所管理的資源是被配置用于所述環(huán)境且可供使用的 資源,而獨(dú)立于資源消耗。每個(gè)所管理的資源類型的份額的一部分被分配 給用戶或用戶組。接著,所述用戶或用戶組的待執(zhí)行的每個(gè)作業(yè)被指派作 業(yè)執(zhí)行調(diào)度優(yōu)先級(jí)。此優(yōu)先級(jí)是基于用戶或組針對(duì)每類所管理的資源的分 配當(dāng)前剩余多少份額。所確定的優(yōu)先級(jí)獨(dú)立于混合集群化處理環(huán)境中其他
用戶對(duì)所管理的資源的使用量。
因?yàn)榕c所分配的份額的數(shù)量相比,用戶所提交的作業(yè)的調(diào)度優(yōu)先級(jí)更
受所述用戶或所述用戶所歸屬的用戶組所^使用的所管理資源的份額數(shù)量的
影響,所以所述用戶或用戶組的資源使用量被跟蹤和累積。此外,根據(jù)本
發(fā)明的一個(gè)方面,指數(shù)衰減機(jī)制被應(yīng)用到所累積的資源使用量數(shù)據(jù),目的
是給予近期的使用量較多的權(quán)重而給予過去較久的使用量較少的權(quán)重,從
而,與受在更早時(shí)間處的過去使用量的影響相比,作業(yè)調(diào)度優(yōu)先級(jí)更多地
受所管理資源的近期使用量的影響。
參考圖l描迷了并入并使用本發(fā)明的一個(gè)或多個(gè)方面的處理環(huán)境的一
個(gè)實(shí)施例。在一個(gè)例子中,所述處理環(huán)境是諸如集群化計(jì)算環(huán)境之類的分
布式處理環(huán)境,其中所述環(huán)境的資源被共享以執(zhí)行系統(tǒng)任務(wù)。 一個(gè)示例性
的集群化處理環(huán)境是混合集群化處理環(huán)境,其中處理器集群包括具有不同
資源類型的處理器。雖然在此將集群化環(huán)境描述為并入并使用本發(fā)明的一
個(gè)或多個(gè)方面,但是包括非集群化處理環(huán)境的其它類型的環(huán)境也可以從本 發(fā)明的一個(gè)或多個(gè)方面受益。
圖1描繪了集群化處理環(huán)境100,其包括例如經(jīng)由一個(gè)或多個(gè)連接104 彼此耦合的多個(gè)處理單元102。連接104包括但是不限于有線連接、無線 連接或任何類型的網(wǎng)絡(luò)連接,諸如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、令 牌環(huán)、以太網(wǎng)連接等等。
所述處理單元可以包括例如個(gè)人計(jì)算機(jī)、膝上計(jì)算機(jī)、工作站、服務(wù) 器、大型機(jī)、袖珍型計(jì)算機(jī)或任何其它類型的處理單元。作為一個(gè)具體例 子, 一個(gè)或多個(gè)所述處理單元是紐約Armonk的國(guó)際商業(yè)機(jī)器公司所提供 的?861^8@服務(wù)器,而所述混合集群化處理環(huán)境的一個(gè)或多個(gè)其它處理單 元是紐約Armonk的國(guó)際商業(yè)機(jī)器公司所提供的Blue Gene 系統(tǒng) ("pSeries,,和"Blue Gene"是紐約Armonk的國(guó)際商業(yè)機(jī)器公司的注 冊(cè)商標(biāo))。每個(gè)處理單元可以是與另一個(gè)處理單元相同或者不同類型的處 理單元。在一個(gè)例子中,不同處理單元包括不同的資源類型。在一個(gè)例子 中,每個(gè)處理單元執(zhí)行操作系統(tǒng)106,諸如LINUX、或由國(guó)際商業(yè)機(jī)器公 司所提供的AIX ( "AIX"是紐約Armonk的國(guó)際商業(yè)機(jī)器公司的注冊(cè)商 標(biāo))。 一個(gè)處理單元的操作系統(tǒng)可以與另一個(gè)處理單元相同或者不同。此 外,在其它例子中, 一個(gè)或多個(gè)所述處理單元可以不包括操作系統(tǒng)。
才艮據(jù)本發(fā)明的一個(gè)方面, 一個(gè)或多個(gè)所述處理單元(在此^皮稱為管理 器)執(zhí)行作業(yè)調(diào)度器108。作業(yè)調(diào)度器108是例如負(fù)責(zé)調(diào)度用戶實(shí)體的作 業(yè)的程序。如在此所使用,術(shù)語"用戶實(shí)體"是指用戶或用戶組。所述作 業(yè)調(diào)度器通過使用合理的份額調(diào)度技術(shù)來調(diào)度所述作業(yè)。另外,所述處理 單元包括處理器間通信單元110,其便利于管理器與所述集群化處理環(huán)境 的其它處理單元之間的通信,其中所述其它處理單元包括位于所述作業(yè)調(diào)
度器所管理的混合集群化處理環(huán)境中的多個(gè)所管理資源類型中的至少一個(gè) 所管理資源類型。處理器間通信單元的例子包括以太網(wǎng)調(diào)制解調(diào)器、令牌 環(huán)調(diào)制解調(diào)器、其它LAN調(diào)制解調(diào)器、其它WAN調(diào)制解調(diào)器、以及無線 網(wǎng)絡(luò)調(diào)制解調(diào)器。
在具有許多^^用來運(yùn)行用戶程序或作業(yè)的計(jì)算機(jī)器的集群中,工作負(fù)
荷管理軟件可包括根據(jù)本發(fā)明的一個(gè)方面的合理的份額調(diào)度的實(shí)施例,以 便利于對(duì)所述集群化處理環(huán)境中將在所有用戶和用戶組之間合理地進(jìn)行分 配的計(jì)算資源的合理利用。在高層次上,合理的份額調(diào)度收集資源使用量 信息,并使用此信息來以管理或調(diào)節(jié)每個(gè)用戶或用戶組對(duì)資源的使用的方 式確定作業(yè)調(diào)度優(yōu)先級(jí),目的是給每個(gè)用戶實(shí)體提供理想的資源使用量比 例。
在計(jì)算機(jī)器集群中,存在許多種類的計(jì)算資源。每個(gè)機(jī)器可以具有例 如處理器、存儲(chǔ)器、網(wǎng)絡(luò)帶寬、以及存儲(chǔ)設(shè)備。集群還可以包括不同類型
的計(jì)算機(jī)器。雖然合理的份額調(diào)度可以管理像中央處理單元(CPU)這樣
的一類資源,但是其不限于管理僅僅一類資源。例如,合理的份額調(diào)度可 以通過將不同的權(quán)重附著到每個(gè)資源上來處理各資源的組合,諸如以例如
"2 x CPU + 1 x存儲(chǔ)器"的方式來處理CPU和存儲(chǔ)器的組合。將通過合 理的份額調(diào)度來管理的各類、類型的資源或資源組合可以由具有管理權(quán)限 的集群化處理環(huán)境中的用戶來選擇。
本發(fā)明的一個(gè)方面提供用于多種資源類型的合理的份額調(diào)度機(jī)制。如 果所述資源類型基本上相互獨(dú)立(例如因?yàn)樗鲑Y源由類型大不相同的機(jī) 器所提供的原因),則這可能是理想的。例如,雖然IBM Blue Gene 系統(tǒng) 和Linux或AIX⑧機(jī)器提供不同類型的資源,但是混合集群化處理環(huán)境可 以包括一個(gè)IBM Blue Gene⑧系統(tǒng)和許多Linux或AD^機(jī)器。根據(jù)本發(fā)明 的一個(gè)方面,用于多種資源類型的合理的份額調(diào)度機(jī)制還可被用于管理在 相同機(jī)器的同質(zhì)集群中的不同資源,例如CPU和存儲(chǔ)器。某些用戶程序可 能是CPU密集型的,而其它用戶程序可能是存儲(chǔ)器密集型的。在這種例子 中,根據(jù)單獨(dú)的CPU和存儲(chǔ)器使用量來確定作業(yè)優(yōu)先級(jí)可能是有利的。此 夕卜,所管理的資源的類型可能是諸如CPU資源之類的簡(jiǎn)單類型或像各種資 源的組合這樣的復(fù)合類型。
圖2圖示了用于對(duì)混合機(jī)器集群進(jìn)行合理的份額調(diào)度的初始化過程的 一個(gè)實(shí)施例的流程圖。圖2的所述初始化過程包括例如,獲得集群資源 的類型的指示以在合理的份額調(diào)度下進(jìn)行管理(步驟201)?;旌霞夯?處理環(huán)境中的已授權(quán)用戶(諸如管理員)可以輸入所述集群的資源類型以基于所述合理的份額調(diào)度的期望目的來進(jìn)行管理。圖2的初始化過程包括 對(duì)總計(jì)份額數(shù)量的指示,在步驟202中將把每類所管理的資源劃分為所述 份額??捎绊懹糜诿款愃芾碣Y源的總計(jì)份額的數(shù)量的因素包括份額分配 的方便性以及對(duì)每類所管理資源的資源使用量改變的所期望的敏感度。在 圖2的初始化的步驟203中,獲得每類集群資源將有顯著影響的持續(xù)時(shí)間 的指示。例如,對(duì)持續(xù)時(shí)間的這種指示可包括時(shí)間常數(shù),其表征了被應(yīng)用 到所管理資源類型的所測(cè)量的使用的衰減函數(shù)。在另一個(gè)例子中,持續(xù)時(shí) 間的指示可包括時(shí)間間隔。在一個(gè)實(shí)施例中,每類資源可具有它自己的衰 減特性。圖2的初始化過程還包括獲得指示了被分配^個(gè)用戶實(shí)體的 每類所管理的資源的份額的數(shù)量的數(shù)據(jù)(步驟204)。針對(duì)每類資源將份 額分配給每個(gè)用戶或用戶組是非常靈活的,從而在需要或者希望的條件下 向一組用戶提供對(duì)某些類型的資源的主務(wù)使用是可能的。
圖3圖示了根據(jù)本發(fā)明的一個(gè)方面的、在集群化處理環(huán)境里確定作業(yè) 調(diào)度優(yōu)先級(jí)以便利于工作負(fù)荷管理的一個(gè)實(shí)施例中與所管理資源相關(guān)聯(lián)的 數(shù)據(jù)的例子。在圖3的例子中,兩類所管理資源的每類具有它自己的與確 定作業(yè)調(diào)度優(yōu)先級(jí)有關(guān)的參數(shù)和初始化數(shù)據(jù)。另外,與每個(gè)用戶實(shí)體所使 用的所管理資源的份額的數(shù)量有關(guān)的數(shù)據(jù)還與每種資源類型相關(guān)聯(lián)。
與資源類型1相關(guān)聯(lián)的數(shù)據(jù)301包括例如用戶實(shí)體資源類型使用量 數(shù)據(jù)USED—SHARES1和參數(shù)FAIR_SHARE_TOTAL—SHARES1 、 FAIR_SHARE_INTERVAL1 、 以及 ALLOCATED—SHARES1 。 FAIR_SHARE—TOTAL—SHARESl指示總計(jì)份額數(shù)量,其中資源類型1 將被劃分為所述份額;FAIR_SHARE_INTERVAL1指示時(shí)間常數(shù),其表 征了將被應(yīng)用到針對(duì)資源類型1的使用量數(shù)據(jù)的衰減函數(shù);而 ALLOCATED—SHARES1表示與被分配^^個(gè)用戶實(shí)體的資源類型1的 份額的數(shù)量相關(guān)聯(lián)的數(shù)據(jù)。類似地,與資源類型2相關(guān)聯(lián)的數(shù)據(jù)302包括 例如用戶實(shí)體資源類型使用量數(shù)據(jù)USED—SHARES2和參數(shù) FAIR—SHARE_TOTAL_SHARES2、 FAIR_SHARE_INTERVAL2 、以及 ALLOCATED—SHARES2,其中FAIR—SHARE_TOTAL_SHARES2指示 總計(jì)份額數(shù)量,其中資源類型2將被劃分為所述份額; FAIR_SHARE_INTERVAL2指示時(shí)間常數(shù),其表征了將被應(yīng)用到針對(duì)資 源類型2的使用量數(shù)據(jù)的衰減函數(shù);ALLOCATED_SHARES2表示與被 分配給每個(gè)用戶實(shí)體的資源類型2的份額的數(shù)量相關(guān)聯(lián)的數(shù)據(jù)。
圖4圖示了在集群化處理環(huán)境里確定作業(yè)調(diào)度優(yōu)先級(jí)以便利于工作負(fù) 荷管理的一個(gè)實(shí)施例中與所管理資源相關(guān)聯(lián)的數(shù)據(jù)的另一例子,其中許多 公共參數(shù)與所管理資源類型相關(guān)聯(lián)。例如,包括 FAIR—SHARE—TOTAL—SHARES 、 FAIR一SHAREINTERVAL 、 ALLOCATED_SHARES以及USED_SHARES1的數(shù)據(jù)401與資源類型1 相關(guān)聯(lián), 而包括FAIR—SHARE—TOTAL—SHARES 、 FAIR_SHARE—INTERVAL、 ALLOCATED—SHARES 以 及 USED—SHARES2的數(shù)據(jù)402與資源類型2相關(guān)聯(lián)。在這個(gè)例子中,資源 類型1 和資源類型 2 二者都被劃分為由參數(shù) FAIR_SHARE_TOTAL—SHARES指示的多個(gè)份額。同樣,相同的時(shí)間常 數(shù)FAIR_SHARE_INTERVAL表征了將被應(yīng)用到針對(duì)資源類型1和資源 類型2 二者的使用量數(shù)據(jù)的衰減函數(shù),而資源類型1和資源類型2對(duì)每個(gè) 用戶實(shí)體的分配由ALLOCATED—SHARES數(shù)據(jù)來表示。盡管與圖3中的 例子相比,圖4中的例子具有更簡(jiǎn)單的初始化的優(yōu)點(diǎn),但是針對(duì)每類所管 理資源的所使用的份額仍然被分別跟蹤,原因是用戶或組在一段時(shí)間上一 般不會(huì)消耗相同量的每種資源類型。
合并了圖3和圖4中的兩個(gè)例子的各方面的方法也屬于本發(fā)明的范圍。 也即,在確定作業(yè)調(diào)度優(yōu)先級(jí)的另一個(gè)實(shí)施例中與所管理資源相關(guān)聯(lián)的數(shù) 據(jù)可以同時(shí)包括與多種資源類型的管理相關(guān)聯(lián)的公共參數(shù)以及與單個(gè)資源 類型相關(guān)聯(lián)的單獨(dú)參數(shù)。
本發(fā)明的 一方面的合理的份額調(diào)度技術(shù)基于在處理環(huán)境中可用的所管 理資源的總計(jì)數(shù)量而不是基于用戶所消耗的資源的總計(jì)數(shù)量來定義資源4吏 用量份額。另外,基于被分配給用戶實(shí)體的每種資源類型的份額的數(shù)量以 及由所述用戶實(shí)體所使用的每種資源類型的份額來指派作業(yè)調(diào)度優(yōu)先級(jí)。 參考附圖來描述關(guān)于根據(jù)本發(fā)明的一方面的合理的份額調(diào)度技術(shù)的更多細(xì) 節(jié)。
首先參考圖5,描述了與將所管理資源類型的份額分配給用戶實(shí)體相 關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例。在一個(gè)例子中,由在處理環(huán)境的一個(gè)或多個(gè)處 理單元中的作業(yè)調(diào)度器來執(zhí)行所述邏輯。此外,針對(duì)由所述環(huán)境的用戶或 用戶組所共享的每種資源類型來執(zhí)行所述邏輯。首先,確定在所述處理環(huán) 境中將共享的每種所管理資源類型的量,步驟500 (圖5)。在一個(gè)實(shí)施例 中,它是所確定的每種資源類型的總計(jì)量。 一類資源類型的總計(jì)量是從過 去到現(xiàn)在的時(shí)間在處理環(huán)境中所有可用的所述類型的資源,所述資源被應(yīng) 用了衰減函數(shù),從而在過去時(shí)間的資源類型的量在資源類型的總計(jì)量中較 次要,原因是過去的時(shí)間變得離現(xiàn)在的時(shí)間越來越遠(yuǎn)。例如,以下公式被 用來確定CPU資源的總計(jì)量
CPU資源的總計(jì)量=(處理器的總計(jì)數(shù)量)x〗exp('k*t)
- (處理器的總計(jì)數(shù)量)/k,
此處,k是衰減常數(shù),其確定衰減過程的速度并且是所述函數(shù)的輸入;而t
是所逝去的時(shí)間的量。
作為確定資源量的一個(gè)具體的例子,如果中央處理單元(CPU)資源
將被共享,則確^:在處理環(huán)境中可用的處理器的數(shù)量??梢酝ㄟ^例如分析 處理單元所提供的統(tǒng)計(jì)信息來做出這個(gè)確定。例如,每個(gè)處理單元將所述 處理單元上的可用的中央處理器的數(shù)量通知給執(zhí)行作業(yè)調(diào)度器的管理器 (或多個(gè)管理器)。所述作業(yè)調(diào)度器累積此信息并應(yīng)用衰減函數(shù)以確定集
群中的CPU資源的量。
針對(duì)每種所管理資源類型,所獲得的資源的總計(jì)量接著被劃分為總計(jì)
數(shù)量的所期望的份額,步驟502。在一個(gè)例子中,由管理員來選擇所期望 的份額的總計(jì)數(shù)量。典型地,如果在環(huán)境中存在大量用戶,則大量的總計(jì) 份額是理想的。總計(jì)份額的數(shù)量越大,則每個(gè)份額的資源數(shù)量就越小,并 且所使用的份額的數(shù)量對(duì)資源使用量就越敏感。
接著,份額被分配給處理環(huán)境的一個(gè)或多個(gè)用戶實(shí)體,步驟504。這 種分配也可以由管理員來指定并且可以被作為輸入提供給調(diào)度器程序,或 者所述程序可包括啟發(fā)式公式以定義對(duì)于用戶或用戶組的分配。 一個(gè)或多 個(gè)因素可以被用于確定所述分配,所述因素包括但不限于預(yù)算、重要性、
管理員的選擇等等。
在將所管理資源類型的份額分配給期望的用戶和用戶組之后,針對(duì)那
些用戶實(shí)體的每種所管理資源類型的所授權(quán)的資源比例被確定,步驟506。
對(duì)于每種資源類型,通過將分配給用戶實(shí)體的資源類型的份額的數(shù)量除以 環(huán)境的資源類型的總計(jì)份額的數(shù)量來確定此比例。
圖6圖示了才艮據(jù)本發(fā)明的、在集群化處理環(huán)境中確定作業(yè)調(diào)度優(yōu)先級(jí)
用于對(duì)多種資源類型進(jìn)行合理的份額調(diào)度的過程的若干方面。 一般地,從 集群中的機(jī)器中收集并在每個(gè)用戶或組的中央點(diǎn)處累積針對(duì)每類所管理資 源的資源使用量。在步驟601中,由已完成的作業(yè)所消耗的每類所管理集 群資源的量被收集。在步驟602中,由每個(gè)用戶實(shí)體所消耗的每類所管理 的量被累積并且實(shí)施衰減函數(shù)。在步驟603中,根據(jù)可用的資源類型的總 計(jì)量以及所述可用總計(jì)量被劃分為的總計(jì)份額的數(shù)量,將來自步驟602的 對(duì)所使用的資源的已累積和衰減的度量轉(zhuǎn)換成針對(duì)每個(gè)用戶實(shí)體的每種資 源類型的所使用的份額。接著在步驟604中,關(guān)于每種所管理資源類型以 及每個(gè)用戶或組的所分配的和所使用的份額的信息與作業(yè)類型信息一起被 用來針對(duì)后續(xù)提交的作業(yè)來計(jì)算作業(yè)調(diào)度優(yōu)先級(jí),以用合理的份額調(diào)度來 便利于工作負(fù)荷的管理。根據(jù)表達(dá)式來計(jì)算作業(yè)調(diào)度優(yōu)先級(jí),所述表達(dá)式 可以包括用戶實(shí)體的至少一類所管理資源類型的剩余份額以及作業(yè)類型屬 性作為因子,并且所述表達(dá)式定義了合理的份額調(diào)度系統(tǒng)的特性,下面描 述了所述表達(dá)式的一個(gè)例子。作業(yè)類型在所述優(yōu)先級(jí)表達(dá)式中的影響便利 于分別對(duì)不同資源類型的管理。同樣,在作業(yè)調(diào)度優(yōu)先級(jí)表達(dá)式中的作業(yè) 類型屬性的使用給客戶提供了用于設(shè)計(jì)合理的份額調(diào)度的操作以滿足該顧 客的需要的靈活性。例如,作業(yè)類型屬性可以被使用從而一種類型的資源 比另一種類型的資源在確定后續(xù)提交的作業(yè)的調(diào)度優(yōu)先級(jí)時(shí)具有更大的影 響。
在另一個(gè)實(shí)施例中,可以周期性地執(zhí)行以下步驟收集由每個(gè)用戶實(shí) 體的作業(yè)所消耗的每種資源類型的量、累積并應(yīng)用衰減函數(shù)到由每個(gè)用戶 實(shí)體使用的每種所管理資源的量、以及將所使用作業(yè)種類的所累積和所衰 減的度量轉(zhuǎn)換成所使用的份額。在這個(gè)實(shí)施例中,從最后一次對(duì)資源使用
量信息的周期性收集開始,收集針對(duì)每個(gè)用戶實(shí)體的作業(yè)所消耗的資源類 型的量。
根據(jù)本發(fā)明,在用于包括Blue Gene 系統(tǒng)和許多其它非Blue Gene機(jī) 器系統(tǒng)的示例性的混合集群的合理的份額調(diào)度中使用確定調(diào)度優(yōu)先級(jí)的一 個(gè)實(shí)施例。在這個(gè)實(shí)施例中,所管理資源類型是其它機(jī)器的CPU資源和 Blue Gene 系統(tǒng)的資源。將在Blue Gene 系統(tǒng)上運(yùn)行的作業(yè)主要使用Blue Gen^系統(tǒng)的資源,而這些作業(yè)的作業(yè)類型屬性指示出它們的作業(yè)類型是 Blue Gene。將在其它非Blue Gene機(jī)器上運(yùn)行的作業(yè)不使用任何Blue 06肌@資源;這些作業(yè)的作業(yè)類型屬性指示出它們的作業(yè)類型是非Blue Gene作業(yè)。
Blue Gene⑧系統(tǒng)包括例如計(jì)算機(jī)節(jié)點(diǎn)、輸入/輸出(I/O)節(jié)點(diǎn)、交換 機(jī)和導(dǎo)線。這些部件和資源可被用于執(zhí)行BlueGene⑧作業(yè)??梢远x組合 資源類型的Blue 。6116@資源,其中所述組合資源類型包括這些Blue Gene 部件的某種組合或全部,其中每個(gè)部件都被指派有權(quán)重因子。作業(yè)所使用 的Blue Gen^資源的量的度量的一個(gè)例子是所使用的計(jì)算機(jī)節(jié)點(diǎn)的數(shù)量和 所跨時(shí)間周期的乘積。因?yàn)锽lueGene /L系統(tǒng)只允許在一個(gè)時(shí)刻在計(jì)算機(jī) 節(jié)點(diǎn)上運(yùn)行并行作業(yè)的一個(gè)任務(wù),所以81肌061^@并行作業(yè)所使用的計(jì)算 機(jī)節(jié)點(diǎn)的數(shù)量是在Blue Gene /L系統(tǒng)上運(yùn)行的作業(yè)所使用的Blue Gene 資源類型的量的相對(duì)度量,通過在這個(gè)例子中針對(duì)提交給混合集群的作業(yè) 的合理的份額調(diào)度所定義的兩類資源,當(dāng)作業(yè)結(jié)束時(shí)所述作業(yè)所消耗的兩 類資源將被收集并向與所述作業(yè)相關(guān)聯(lián)的用戶和用戶組收費(fèi)。此使用量信 息可以被用于計(jì)算后續(xù)所提交作業(yè)的作業(yè)優(yōu)先級(jí)。
以下方程是才艮據(jù)本發(fā)明的一個(gè)方面的作業(yè)調(diào)度優(yōu)先級(jí)表達(dá)式的兩個(gè)例子。
JobPriority = JoblsBlueGene * UserHasBlueGeneShares * 1000 + JoblsNotBlueGene * UserHasCpuShares * 100
方程l
JobPriority = JoblsBlueGene * UserRemainingBlueGeneShares * 100 + UserRemainingCpuShares * 10
此處
UserRemainingBlueGeneShares = (UserAllocatedBlueGeneShares —
UserUsedBlueGeneShares) UserRemainingCpuShares = (UserAllocatedCpuShares —
UserUsedCpuShares)
方程2
當(dāng)作業(yè)是類型BlueGene時(shí),變量JoblsBlueGene的值是1而變量 JoblsNotBlueGene的值是0;否則,變量JoblsBlueGene的值是0而變量 JoblsNotBlueGene的值是1。變量UserRemainingBlueGeneShares是Blue Gen^資源類型的所分配的份額與針對(duì)用戶的Blue Gen^資源類型所使用 的份額之間的差值。如果變量UserRemainingBlueGeneShares的值是正, 則變量UserHasBlueGeneShares等于1,否則變量UserHasBlueGeneShares 等于0。變量UserRemainingCpuShares是非BlueGene資源類型的所分配 的CPU份額與針對(duì)用戶的所使用的CPU份額之間的差值。如果變量 UserRemainingCpuShares的值是正,貝'J變量UserHasCpuShares等于1; 否則,變量UserHasCpuShares等于0。在方程1中,如果作業(yè)是類型 BlueGene并且如果與所述作業(yè)相關(guān)聯(lián)的用戶還沒有使用被分配給所述用 戶的BlueGen^資源類型的所有份額,則所述用戶所提交的Blue Gen^作 業(yè)將被給予作業(yè)調(diào)度優(yōu)先級(jí)1000。如果所提交的作業(yè)不是類型BlueGene 并且如果與所提交的作業(yè)相關(guān)聯(lián)的用戶還沒有使用被分配給所述用戶的非 BlueGene資源類型的全部CPU份額,則所述作業(yè)將被給予作業(yè)調(diào)度優(yōu)先 級(jí)100。然而,如果用戶已經(jīng)使用執(zhí)行所述作業(yè)所需的資源類型的全部所 分配的份額,則使用方程1所計(jì)算的所提交的作業(yè)的作業(yè)調(diào)度優(yōu)先級(jí)等于 0。如使用這個(gè)例子所示,兩類資源可以在混合集群化環(huán)境中被獨(dú)立地管理。
在方程2中,用戶所提交的每個(gè)作業(yè)的作業(yè)調(diào)度優(yōu)先級(jí)受用戶具有的 非BlueGene資源類型的CPU資源的剩余份額的數(shù)量的影響。然而,Blue 061^@作業(yè)的調(diào)度優(yōu)先級(jí)也受用戶的Blue 061^@資源類型的剩余份額的影 響。作業(yè)類型屬性與每個(gè)作業(yè)的關(guān)聯(lián)以及管理員所提供的作業(yè)調(diào)度優(yōu)先級(jí) 表達(dá)式的靈活性便利于顧客針對(duì)混合集群化環(huán)境中的多類資源設(shè)計(jì)合理的 份額調(diào)度的特性以適合他們的具體需要。
在將所管理的資源類型的份額分配給用戶實(shí)體之后,用戶實(shí)體可以運(yùn) 行作業(yè)?;谟脩魧?shí)體在集群中的所管理資源類型的剩余份額來確定用戶 實(shí)體的作業(yè)的調(diào)度優(yōu)先級(jí),并且從所述用戶實(shí)體所分配和所使用的份額計(jì) 算所述用戶實(shí)體的剩余份額。也即,將調(diào)度的作業(yè)的優(yōu)先級(jí)是基于被分配
給請(qǐng)求對(duì)所述作業(yè)進(jìn)行調(diào)度的用戶實(shí)體的所管理資源類型的份額的數(shù)量以 及用戶實(shí)體的已經(jīng)被使用的份額的數(shù)量。
一般,具有所管理資源類型的剩
余份額給用戶的所提交的作業(yè)提供更高的作業(yè)調(diào)度優(yōu)先級(jí)。針對(duì)方程2的 作業(yè)優(yōu)先級(jí)表達(dá)式的例子,份額剩余的數(shù)量越大,則作業(yè)調(diào)度優(yōu)先級(jí)就越 高。根據(jù)本發(fā)明的一個(gè)方面,參考圖7描述了在集群化處理環(huán)境中利用確 定作業(yè)調(diào)度優(yōu)先級(jí)的技術(shù)對(duì)作業(yè)進(jìn)行合理的份額調(diào)度的過程的一個(gè)實(shí)施 例。在一個(gè)示例性的系統(tǒng)中,圖1中的處理器的作業(yè)調(diào)度器執(zhí)行圖7中所 圖示的作業(yè)調(diào)度過程。
首先,用戶提交將在所述處理環(huán)境中運(yùn)行的作業(yè),步驟700,并且在 步驟702中由例如作業(yè)調(diào)度器來計(jì)算所述作業(yè)的調(diào)度優(yōu)先級(jí)。有許多確定 ,纟
源類型的變量。這些變量的例子包括
(a) UserAllocatedShares-由管理員分配給用戶的資源類型的份額的總 計(jì)數(shù)量。
(b) UserUsedShares-由所述用戶使用的資源類型的份額的數(shù)量,其由 作業(yè)調(diào)度器來計(jì)算。
(c) UserRemainingShares 一 UserAllocatedShares與UserUsedShares變 量的值之間的差值。
(d ) UserHasShares -指示所述用戶是否具有資源類型的剩余份額的導(dǎo) 出值(例如,0指示沒有剩余份額;1指示至少1個(gè)剩余份額)。
(e) UserSharesExceeded -指示用戶對(duì)資源類型的使用量是否已經(jīng)超過 其資源類型的所分配份額的數(shù)量的值(例如,0指示使用量還沒有超 過用戶的所分配份額的數(shù)量,l指示已經(jīng)超過)。
(f) GroupAllocatedShares -由管理員分配給用戶組的資源類型的份額 的總計(jì)數(shù)量。
(g) GroupUsedShares-由所述組所使用的資源類型的份額的數(shù)量,其
由作業(yè)調(diào)度器來計(jì)算。
(h ) Gro叩RemainingShares - Gro叩A(chǔ)llocatedShares與GroupUsedShares
變量的值之間的差值。 (i) Gro叩HasShares -指示用戶組是否具有資源類型的剩余份額的導(dǎo)
出值(例如,O指示沒有剩余份額,l指示至少l個(gè)剩余份額)。 (j ) GroupSharesExceeded -指示用戶組對(duì)資源類型的使用量是否已經(jīng) 超過其資源類型的所分配份額的數(shù)量的值(例如,0指示使用量還未 超過用戶組的所分配份額的數(shù)量;l指示已經(jīng)超過)。 在上面所呈現(xiàn)的方程l和方程2的例子中包括了在確定作業(yè)調(diào)度優(yōu)先 級(jí)時(shí)可被使用的若干其它變量。上面的變量中的一個(gè)或多個(gè)可以被用在作 業(yè)調(diào)度優(yōu)先級(jí)表達(dá)式里,以計(jì)算將在混合集群化處理環(huán)境里運(yùn)行的作業(yè)的 作業(yè)調(diào)度優(yōu)先級(jí)。管理員可以指定一個(gè)或多個(gè)被用于計(jì)算作業(yè)調(diào)度優(yōu)先級(jí) 的作業(yè)優(yōu)先級(jí)表達(dá)式。這些表達(dá)式的例子包括上面的方程1和方程2。然 而,本領(lǐng)域的普通技術(shù)人員將意識(shí)到存在許多其它可能的表達(dá)式。
返回圖7,在確定作業(yè)的調(diào)度優(yōu)先級(jí)之后,作業(yè)被放置到按作業(yè)調(diào)度 優(yōu)先級(jí)來排序的等待隊(duì)列,步驟704。接著,以較高優(yōu)先級(jí)作業(yè)先被運(yùn)行 的方式來運(yùn)行等待隊(duì)列中的作業(yè),步驟706。
當(dāng)作業(yè)結(jié)束時(shí),在步驟708中由作業(yè)調(diào)度器來收集針對(duì)該作業(yè)的所管 理資源類型的資源^使用量。特別地,在一個(gè)例子中,作業(yè)屬于用戶和用戶 組,并且收集和累積針對(duì)所述用戶以及用戶組由所述作業(yè)使用的資源,步 驟710。作為一個(gè)例子,在作業(yè)終止時(shí)由訪問與每種資源類型的使用相關(guān) 的恰當(dāng)信息的調(diào)度器來收集此使用量。
接著,所累積的資源使用量被轉(zhuǎn)換成資源類型的所使用的份額,步驟 712。例如,通過將用戶的資源類型的累積資源使用量除以每個(gè)份額的所述 資源類型的數(shù)量來計(jì)算資源類型的變量UserUsedShares的值(也即,每個(gè) 份額的數(shù)量=總計(jì)資源量/份額的總計(jì)數(shù)量)。在一個(gè)例子中,如果資源類 型具有時(shí)間敏感的特性,也即如果所述資源類型隨時(shí)間消失(例如CPU時(shí) 間),則對(duì)于資源類型的總計(jì)量(也即,總計(jì)資源量)實(shí)施與所使用資源 的累積相同的衰減函數(shù)。類似地,通過將用戶組的累積資源類型使用量除
以每個(gè)份額的所述資源類型的數(shù)量來確定資源類型的GroupUsedShares變 量的值。
在針對(duì)每種類型的資源將累積資源使用量轉(zhuǎn)換成所使用的份額之后, 處理繼續(xù)進(jìn)行計(jì)算下一個(gè)作業(yè)的作業(yè)優(yōu)先級(jí),步驟702。
在一個(gè)例子中,在周期性時(shí)間間隔處,由作業(yè)調(diào)度器來重新計(jì)算作業(yè) 等待隊(duì)列里的作業(yè)的優(yōu)先級(jí)。參考圖8描述了與更新作業(yè)等待隊(duì)列里的作 業(yè)的調(diào)度相關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例。首先,確定每隔多長(zhǎng)時(shí)間重新計(jì)算 作業(yè)優(yōu)先級(jí),步驟800。作為一個(gè)例子,由例如管理員選擇每5分鐘的時(shí) 間間隔。還可選擇其它間隔。
在指定的時(shí)間間隔的結(jié)束處,如上所述,通過使用包括變量的任何期 望的表達(dá)式來重新計(jì)算等待隊(duì)列里的所有作業(yè)(或者在優(yōu)選情況下,其中 的一部分作業(yè))的作業(yè)優(yōu)先級(jí),步驟802。接著,根據(jù)新的作業(yè)調(diào)度優(yōu)先 級(jí)對(duì)等待隊(duì)列里的作業(yè)進(jìn)行重新排序,步驟804。此后,所述邏輯等待下 一次重新計(jì)算作業(yè)調(diào)度優(yōu)先級(jí)的機(jī)會(huì),步驟806。當(dāng)例如指定的時(shí)間間隔 到期時(shí),處理接著繼續(xù)進(jìn)行重新計(jì)算作業(yè)優(yōu)先級(jí),步驟802。
如前面所描述,當(dāng)作業(yè)結(jié)束時(shí),資源使用量被收集并被累積,并且接 著所累積的使用量被轉(zhuǎn)換成所使用的份額。所管理資源類型的此累積使用 量實(shí)質(zhì)上是歷史性的并且影響作業(yè)調(diào)度決策??梢杂迷S多方式來執(zhí)行對(duì)所 管理資源類型的使用量數(shù)據(jù)的收集和累積。然而,根據(jù)本發(fā)明的一個(gè)方面, 近期的資源使用量比更早時(shí)間的使用量更有價(jià)值。也即,隨著時(shí)間的流逝, 相同的資源量具有較少的價(jià)值。例如,如在圖9中所示,在當(dāng)前時(shí)間處, 資源使用量的量具有其最大值(卯O),而過去的相同量的使用量距離現(xiàn)在 時(shí)間越遠(yuǎn),則由于被應(yīng)用到此數(shù)據(jù)的衰減函數(shù)的原因,此使用量的值就越 小(卯2)。
在一個(gè)例子中,針對(duì)每個(gè)用戶或用戶組對(duì)所管理資源類型的歷史使用 量來記錄僅僅一個(gè)累積數(shù)據(jù)值。此外,不需要丟棄任何舊的使用量數(shù)據(jù), 因?yàn)樵诶鄯e數(shù)據(jù)中資源使用量數(shù)據(jù)的影響隨著時(shí)間自然地減少。資源類型 的累積數(shù)據(jù)包括來自所述資源類型的所有過去的使用量數(shù)據(jù)(或使用量數(shù) 據(jù)的所選量)的貢獻(xiàn),并且不需要用于包括資源使用量數(shù)據(jù)的有限時(shí)間間
隔。在使用量數(shù)據(jù)累積過程期間,基本上連續(xù)地應(yīng)用衰減機(jī)制,從而所述 累積數(shù)據(jù)反映整個(gè)的時(shí)間衰減的資源使用量。
在一個(gè)實(shí)施例中,所使用的衰減函數(shù)是指數(shù)函數(shù)exp(4d),其中k是 確定衰減過程的速度的衰減常數(shù)并且是所述函數(shù)的輸入,而t是自所述資 源類型^f吏用量第 一次被報(bào)告或收集開始所逝去的時(shí)間量。
當(dāng)針對(duì)資源類型收集資源使用量Rl時(shí),它對(duì)累積歷史資源^f吏用量的 貢獻(xiàn)根據(jù)衰減函數(shù)減少。當(dāng)針對(duì)資源類型收集新的資源使用量數(shù)據(jù)R2時(shí), 新數(shù)據(jù)R2當(dāng)時(shí)就凈皮直接加到Rl的所衰減的值上,并且隨著時(shí)間流逝該累 積值是一起衰減的。隨著新的資源使用量被收集,此過程被重復(fù)進(jìn)行。因 此,不必跟蹤所收集的每種資源使用量數(shù)據(jù)樣本。跟蹤資源類型的累積資 源使用量數(shù)據(jù)就足夠了 。這種指數(shù)函數(shù)的此特性由以下方程示出
Rl * exp (-k * (t國(guó)tl))十
R2 * exp (-k * (t-t2))+
R3*exp(-k*(t-t3)) = S4,并且
S1=R1 (在時(shí)間tl)
52 = SI * exp (-k * (t2國(guó)tl)) + R2 (在時(shí)間t2)
53 = S2 * exp (-k * (t3-t2)) + R3 (在時(shí)間t3)
54 = S3 * exp (-k * (t-t3))(在時(shí)間t)。
圖10中示出此衰減函數(shù)的一個(gè)圖示描述。如所示出,在這個(gè)例子中, 連接于水平線1000的垂直線表示在過去不同時(shí)刻處所報(bào)告的資源類型的 使用量的初始值,其在整個(gè)時(shí)間段中是相同的。在指數(shù)曲線下面的垂直線 的各段表示被初始報(bào)告的資源使用量值的當(dāng)前值。在當(dāng)前時(shí)間1002處,初 始報(bào)告的資源類型的使用量的值處于它的峰值。確定衰減時(shí)間常數(shù)的合理 的份額間隔1004,皮選擇。在一個(gè)例子中,合理的份額間隔等于整個(gè)期限的 5% ,其是將所報(bào)告資源使用量的量衰減到它的初始值的5%所需的時(shí)間。 在時(shí)間1006處所報(bào)告的資源使用量在當(dāng)前時(shí)間具有一個(gè)值,其小于初始報(bào) 告值的5%。
參考圖11描述了使用衰減函數(shù)來衰減資源類型的所累積的使用量。在 一個(gè)實(shí)施例中,周期性地或者相應(yīng)于例如作業(yè)的終止,而將新的資源類型
的使用量報(bào)告給作業(yè)調(diào)度器,步驟IIOO。接著,在步驟1102中作業(yè)調(diào)度 器將先前所累積的資源使用量的值衰減到當(dāng)前時(shí)間,并且在步驟1104中將 新的所報(bào)告的使用量值添加到累積值。例如,如果5分鐘以前(t),所收 集的使用量值是100 CPU分鐘,接著通過乘法100 x exp(-W5)以衰減所述 值,從而獲得被衰減到當(dāng)前時(shí)間的資源使用量的累積值的結(jié)果。接著,在 當(dāng)前時(shí)間(例如110CPU分鐘)的新的資源使用量值被添加到此結(jié)果以產(chǎn) 生此資源類型的使用量的新的累積值。接著,處理繼續(xù)進(jìn)行步驟1100。
此外,為了計(jì)算所使用份額的數(shù)量,新的累積值被衰減到當(dāng)前時(shí)間, 步驟1106,并且來自步驟1106的所衰減的累積值被轉(zhuǎn)換成許多所使用份 額,步驟1108。這種處理由例如作業(yè)調(diào)度器來執(zhí)行。
上面所詳細(xì)描述的是合理的份額調(diào)度能力,其使得能夠基于環(huán)境的總
計(jì)可用資源而不是其他用戶所消耗的資源量來對(duì)資源進(jìn)行劃分。這種劃分 資源和定義份額的方式更穩(wěn)定和合理。它更穩(wěn)定的原因是,它獨(dú)立于當(dāng)前 工作負(fù)荷。它更合理的原因是,用戶消耗的份額的數(shù)量取決于用戶具有的 每種資源類型的量以及用戶已使用的每種資源類型的量,而不是取決于其 他用戶偶爾用到的所管理資源的量。
用戶實(shí)體所使用的所管理資源類型的量被記錄并被用于確定所管理資 源類型的所使用份額的數(shù)量。在一個(gè)例子中,針對(duì)所管理資源類型的歷史 使用量應(yīng)用衰減機(jī)制以給予近期的使用量更高的權(quán)重。有利地,被跟蹤的 數(shù)據(jù)量被極大地減少,因?yàn)獒槍?duì)每個(gè)用戶實(shí)體對(duì)于每種資源類型跟蹤僅僅 一份數(shù)據(jù),其包括例如在過去所收集的資源使用量以及當(dāng)數(shù)據(jù)被更新時(shí)的 時(shí)間戳。此外,不需要將資源類型的歷史使用量限制到有限的時(shí)間間隔內(nèi)。 最為顯著的貢獻(xiàn)自然來自最近的歷史資源使用量。這是一種用于記錄^f吏用 量信息的簡(jiǎn)單和方便的技術(shù),其增加性能并減少軟件開發(fā)工作。
通過所應(yīng)用的恰當(dāng)?shù)乃p,所記錄的所管理資源類型的歷史使用量,皮 除以資源類型的每個(gè)份額的量,以獲得所述用戶或用戶組或者二者的資源 類型的所使用份額的數(shù)量。對(duì)資源類型的每個(gè)份額的量實(shí)施相同的衰減機(jī) 制。如果不使用衰減,則從遙遠(yuǎn)的過去一直到當(dāng)前時(shí)間的資源類型的總計(jì) 量是無限的。通過在時(shí)間的每個(gè)瞬間應(yīng)用到資源類型的量的衰減函數(shù),以及從遙遠(yuǎn)的過去到當(dāng)前時(shí)間的集成,資源類型的總計(jì)量是有限量。通過將 這種有限量除以總計(jì)的份額數(shù)量,獲得每個(gè)份額的資源類型的量。所管理 資源類型的所使用和所分配的份額的數(shù)量被用于當(dāng)嘗試使用戶實(shí)體能夠使 用它被授權(quán)使用的一定比例的資源之時(shí)確定作業(yè)調(diào)度優(yōu)先級(jí)。因?yàn)樗褂?和所分配份額的數(shù)量持續(xù)地改變,所以有時(shí)作業(yè)調(diào)度優(yōu)先級(jí)被重新計(jì)算。
本發(fā)明的 一個(gè)或多個(gè)方面可被包括在制品中(例如一個(gè)或多個(gè)計(jì)算機(jī) 程序產(chǎn)品),其具有例如計(jì)算機(jī)可用介質(zhì)。此介質(zhì)在此具有例如計(jì)算機(jī)可 讀程序代碼裝置或邏輯(例如,指令、代碼、命令等等),以提供和便利 于本發(fā)明的一個(gè)或多個(gè)方面的能力。所述制品可被包括為計(jì)算機(jī)系統(tǒng)的一 部分或被單獨(dú)出售。
參考圖12描述了并入本發(fā)明的一個(gè)或多個(gè)方面的制品或計(jì)算機(jī)程序 產(chǎn)品的一個(gè)例子。計(jì)算機(jī)程序產(chǎn)品1200包括例如一個(gè)或多個(gè)計(jì)算機(jī)可用介 質(zhì)1202以在其上存儲(chǔ)計(jì)算機(jī)可讀程序代碼裝置或邏輯1204,以提供并便 利于本發(fā)明的一個(gè)或多個(gè)方面。此介質(zhì)可以是電子的、磁的、光學(xué)的、電 磁的、紅外的、或者半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計(jì)算機(jī)可 讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移除計(jì)算機(jī)磁盤、隨即 存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤和光盤。光盤的例 子包括只讀存儲(chǔ)器致密盤(CD-ROM)、讀/寫致密盤(CD-R/W)和數(shù)字 多功能盤或數(shù)字視頻盤(DVD)。
由一個(gè)或多個(gè)計(jì)算機(jī)可讀程序代碼裝置或邏輯所定義的一個(gè)或多個(gè)相 關(guān)的模塊的邏輯匯編或程序指令序列指導(dǎo)本發(fā)明的一個(gè)或多個(gè)方面的執(zhí) 行。
此處所描述的合理的份額調(diào)度能力的一個(gè)或多個(gè)方面^:包括或者可以 被包括在各種各樣的產(chǎn)品中,所述產(chǎn)品包括但不限于工作負(fù)荷管理產(chǎn)品,
諸如由國(guó)際商業(yè)機(jī)器公司所提供的Tivoli Workload Scheduler LoadLeveler ( "LoadLeveler,,是紐約Armonk的國(guó)際商業(yè)機(jī)器公司的注 冊(cè)商標(biāo))。包括但不限于其它工作負(fù)荷管理產(chǎn)品的其它產(chǎn)品可包括本發(fā)明 的一個(gè)或多個(gè)方面。
有利地,本發(fā)明一個(gè)或多個(gè)方面允許在處理環(huán)境中可用的每類資源的
量被劃分成有限數(shù)量的份額,其是所述處理環(huán)境中的資源類型的份額的總 計(jì)數(shù)量。管理員針對(duì)每類所管理資源指定資源的總計(jì)量被劃分為的份額的 總計(jì)數(shù)量以及每個(gè)用戶或用戶組被分配的份額的數(shù)量。所分配的份額相對(duì) 于份額的總計(jì)數(shù)量的比率指定了被分配給用戶實(shí)體的資源類型的比例。所 定義的比例獨(dú)立于由其它用戶實(shí)體所消耗的資源類型的量,而被指派給用 戶實(shí)體的作業(yè)的作業(yè)調(diào)度優(yōu)先級(jí)獨(dú)立于由其它用戶實(shí)體對(duì)所管理資源類型
的使用。這種指派資源比例權(quán)利給所管理資源類型的方式具有下述優(yōu)點(diǎn), 其能夠調(diào)節(jié)所使用份額的數(shù)量對(duì)資源使用量的敏感度以及能夠容易并靈活 地將份額分配給用戶或組。給定具有固定量的所管理資源類型的集群,每 個(gè)份額的資源類型的量是穩(wěn)定的。此外,有利地,管理員被允許指定所使 用和所分配的份額如何影響作業(yè)調(diào)度優(yōu)先級(jí)以獲得他們?cè)谟脩艉陀脩艚M之 間合理地共享集群資源的目標(biāo)。這給了管理員調(diào)節(jié)合理的份額調(diào)度將對(duì)機(jī) 器集群中的作業(yè)調(diào)度具有多少影響的靈活性。通過本發(fā)明的一個(gè)或多個(gè)方 面,實(shí)時(shí)資源在一段時(shí)間上被有效地共享,因?yàn)槔显缫郧暗馁Y源使用量由 于衰減的緣故對(duì)歷史資源使用量數(shù)據(jù)的貢獻(xiàn)很小。
雖然此處提供了 一個(gè)或多個(gè)例子,但是在不偏離本發(fā)明的精髓的條件 下可對(duì)這些例子4故許多改變。例如,除了此處所提供的例子之外的處理環(huán)
境可以包括本發(fā)明的一個(gè)或多個(gè)方面。例如,環(huán)境可以不是集群化環(huán)境; 它可比此處的描述包括更多或更少的處理單元。此外,環(huán)境可以包括除了
Linux或AIX⑧之外的操作系統(tǒng)。此外,除了此處描述之外的網(wǎng)絡(luò)或連接可 被使用。此外, 一個(gè)或多個(gè)處理單元可以不同于pSeries⑧服務(wù)器或Blue Gen^系統(tǒng)。還存在許多其它改變。
例如,所述處理環(huán)境可包括用于存儲(chǔ)程序代碼的數(shù)據(jù)處理系統(tǒng),其包 括至少一個(gè)通過系統(tǒng)總線直接或間接耦合到存儲(chǔ)器組件的處理器。作為另 一個(gè)例子,處理環(huán)境可包括用于執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng),其包括至 少一個(gè)通過系統(tǒng)總線直接或間接耦合到存儲(chǔ)器組件的處理器。所述存儲(chǔ)器 組件包括例如在實(shí)際執(zhí)行程序代碼期間所使用的本地存儲(chǔ)器、海量存儲(chǔ)裝 置和高速緩沖存儲(chǔ)器,其給至少某種程序代碼提供臨時(shí)存儲(chǔ)以減少在執(zhí)行 期間必須從海量存儲(chǔ)裝置中進(jìn)行檢索代碼的次數(shù)。 輸入/輸出或i/o設(shè)備(包括但不限于鍵盤、顯示器、點(diǎn)擊設(shè)備等等) 可被直接或者通過中間r/o控制器耦合到系統(tǒng)。網(wǎng)絡(luò)適配器也可以耦合到
系統(tǒng)以使數(shù)據(jù)處理系統(tǒng)能夠通過中間專用或公共網(wǎng)絡(luò)來耦合到其它數(shù)據(jù)處 理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器以及以太 網(wǎng)卡只是網(wǎng)絡(luò)適配器的可用類型中的一部分。
本發(fā)明的一個(gè)或多個(gè)方面的能力可以用軟件、固件、硬件或它們的某 種組合來實(shí)現(xiàn)??梢蕴峁C(jī)器可讀的至少一個(gè)程序存儲(chǔ)設(shè)備,其包含可由 機(jī)器執(zhí)行以執(zhí)行本發(fā)明的能力的至少 一個(gè)指令程序。
此處所描繪的流程圖僅是例子。在不偏離本發(fā)明的精髓的條件下可以 對(duì)此處所描述的這些圖或步驟(或操作)做出許多改變。例如,可以用不 同的順序來執(zhí)行這些步驟,或者可以添加、刪除或修改這些步驟。所有這 些改變都被認(rèn)為是所要求保護(hù)的本發(fā)明的 一部分。
雖然此處已經(jīng)詳細(xì)描繪并描述了優(yōu)選的實(shí)施例,但是本領(lǐng)域的技術(shù)人 員將會(huì)很清楚,在不偏離本發(fā)明的精髓的條件下可以做各種修改、添加、 替代以及類似操作,并且由此這些操作被認(rèn)為屬于如權(quán)利要求所限定的本 發(fā)明的范圍。
權(quán)利要求
1.一種在集群化處理環(huán)境中確定不同類型的作業(yè)的調(diào)度優(yōu)先級(jí)以便利于工作負(fù)荷管理的方法,所述方法包括將眾多所管理資源類型中的多個(gè)所管理資源類型中的每個(gè)所管理資源類型的一個(gè)或多個(gè)份額分配給集群化處理環(huán)境中的至少一個(gè)用戶實(shí)體,其中所述眾多所管理資源類型是所述集群化處理環(huán)境的資源;以及針對(duì)所述至少一個(gè)用戶實(shí)體中的一個(gè)用戶實(shí)體所提交的后續(xù)作業(yè)指派作業(yè)優(yōu)先級(jí),其中所述作業(yè)優(yōu)先級(jí)是基于所述后續(xù)作業(yè)的類型屬性和所述用戶實(shí)體的所述多個(gè)所管理資源類型中的至少一個(gè)所管理資源類型的剩余份額的數(shù)量。
2. 根據(jù)權(quán)利要求l所述的方法,進(jìn)一步包括接受用于所述集群化處理 環(huán)境中的眾多所管理資源類型的初始化參數(shù)。
3. 根據(jù)權(quán)利要求2所述的方法,其中所述初始化參數(shù)包括用于所述每 個(gè)所管理資源類型的至少一個(gè)唯一的參數(shù)。
4. 根據(jù)權(quán)利要求2所述的方法,其中所述初始化參數(shù)中的至少一個(gè)在 分配時(shí)被使用。
5. 根據(jù)權(quán)利要求l所述的方法,進(jìn)一步包括接受將在指派時(shí)使用的表 達(dá)式,所述表達(dá)式由具有管理權(quán)限的用戶輸入。
6. 根據(jù)權(quán)利要求l所述的方法,其中如果用戶實(shí)體的所述眾多所管理 資源類型中的一個(gè)所管理資源類型的剩余份額的數(shù)量大于零,則所述指派 使用下述表達(dá)式,其包括對(duì)應(yīng)著所述眾多所管理資源類型中的一個(gè)所管理 資源類型的非零常數(shù)因子。
7. 根據(jù)權(quán)利要求l所述的方法,其中所述指派使用包括比例因子的表 達(dá)式,所述比例因子與用戶實(shí)體的所述眾多所管理資源類型中的一個(gè)所管 理資源類型的剩余份額的數(shù)量成比例。
8. 根據(jù)權(quán)利要求l所述的方法,進(jìn)一步包括接受對(duì)所述眾多所管理資 源類型的指定,所述指定由具有管理權(quán)限的用戶提供。
9. 根據(jù)權(quán)利要求l所述的方法,進(jìn)一步包括確定針對(duì)至少一個(gè)用戶實(shí) 體的每個(gè)所管理資源類型的剩余份額的數(shù)量,所述確定使用所述每個(gè)所管 理資源類型的所^使用份額的時(shí)間衰減累積。
10. 根據(jù)權(quán)利要求9所述的方法,進(jìn)一步包括接受用于所述集群化處 理環(huán)境中的多個(gè)所管理資源類型的初始化常數(shù),其中所述初始化參數(shù)的至 少之一表征了所述每個(gè)所管理資源類型的至少一個(gè)所管理資源類型的所使 用的份額的時(shí)間衰減累積。
11, 一種用于在集群化處理環(huán)境中確定不同類型的作業(yè)的調(diào)度優(yōu)先級(jí) 以便利于工作負(fù)荷管理的系統(tǒng),所述系統(tǒng)包括 作業(yè)調(diào)度器,其適于將眾多所管理資源類型中的多個(gè)所管理資源類型中的每個(gè)所管理資源 類型的份額分配給集群化處理環(huán)境中的至少一個(gè)用戶實(shí)體,其中所述眾多 所管理資源類型是所述集群化處理環(huán)境的資源;以及針對(duì)所述至少一個(gè)用戶實(shí)體中的一個(gè)用戶實(shí)體所提交的后續(xù)作業(yè)指派 作業(yè)優(yōu)先級(jí),其中所述作業(yè)優(yōu)先級(jí)是基于所述后續(xù)作業(yè)的類型屬性和所述 用戶實(shí)體的所述眾多所管理資源類型中的至少一個(gè)所管理資源類型的剩余 份額的數(shù)量。
12. 根據(jù)權(quán)利要求ll所述的系統(tǒng),其中所述作業(yè)調(diào)度器進(jìn)一步適于接 受用于所述集群化處理環(huán)境中的眾多所管理資源類型的初始化參數(shù)。
13. 根據(jù)權(quán)利要求ll所述的系統(tǒng),其中所述作業(yè)調(diào)度器進(jìn)一步適于接 受將在指派時(shí)使用的表達(dá)式,所述表達(dá)式由具有管理權(quán)限的用戶輸入。
14. 根據(jù)權(quán)利要求ll所述的系統(tǒng),其中所述作業(yè)調(diào)度器進(jìn)一步適于接 受對(duì)所述眾多所管理資源類型的指定,所述指定由具有管理權(quán)限的用戶提 供。
15. 根據(jù)權(quán)利要求ll所述的系統(tǒng),其中所述作業(yè)調(diào)度器進(jìn)一步適于通 過使用每個(gè)所管理資源類型的所使用份額的時(shí)間衰減累積來確定針對(duì)至少 一個(gè)用戶實(shí)體的所述每個(gè)所管理資源類型的剩余份額的數(shù)量。
16. 至少一個(gè)機(jī)器可讀程序存儲(chǔ)設(shè)備,其包含可由所述機(jī)器執(zhí)行以執(zhí) 行權(quán)利要求1至10所述的任何方法的至少一個(gè)指令程序。
全文摘要
提供了一種用于在具有眾多所管理資源類型的集群化處理環(huán)境中確定環(huán)同類型的作業(yè)的調(diào)度優(yōu)先級(jí)以便利于工作負(fù)荷管理的技術(shù)。所述技術(shù)包括將多個(gè)所管理資源類型的份額分配給所述集群化處理環(huán)境中的用戶和用戶組。所述技術(shù)還包括針對(duì)所述用戶或用戶組所提交的后續(xù)作業(yè)指派作業(yè)優(yōu)先級(jí),其中所計(jì)算的作業(yè)優(yōu)先級(jí)是基于所述后續(xù)作業(yè)的類型屬性和所述用戶或用戶組的所述多個(gè)所管理資源類型中的至少一個(gè)所管理資源類型的剩余份額的數(shù)量。
文檔編號(hào)G06F9/50GK101169741SQ20071016743
公開日2008年4月30日 申請(qǐng)日期2007年10月24日 優(yōu)先權(quán)日2006年10月25日
發(fā)明者鐘恩慈 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司