專利名稱:便于確定作業(yè)的調(diào)度優(yōu)先級的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
一般而言,本發(fā)明涉及公平份額調(diào)度,具體來說,涉及基于單個(gè)用戶的資源使用狀況并便于對該使用狀況進(jìn)行跟蹤的公平份額調(diào)度功能。
背景技術(shù):
公平份額調(diào)度是工作負(fù)荷管理產(chǎn)品中的功能特點(diǎn)。在諸如群集化環(huán)境之類的分布式處理環(huán)境中,工作負(fù)荷管理軟件產(chǎn)品被用來調(diào)度用戶程序或作業(yè)以在該環(huán)境的各種機(jī)器上運(yùn)行。公平份額調(diào)度根據(jù)預(yù)先定義的比例向著在用戶或用戶群之間分配處理資源的方向驅(qū)動(dòng)調(diào)度決策。
在公平份額調(diào)度中,給用戶或用戶群分配某一比例的環(huán)境的資源,該用戶或用戶群的作業(yè)的調(diào)度優(yōu)先級取決于與由所有用戶或用戶群使用的資源相比較該用戶或用戶群所使用的資源數(shù)量。如此,一個(gè)用戶或用戶群的作業(yè)的調(diào)度優(yōu)先級取決于由其他用戶消耗的資源數(shù)量。資源的比例常常表達(dá)為總資源使用量的百分比。
這種基于其他人消耗的資源的調(diào)度可能對于單個(gè)用戶產(chǎn)生不穩(wěn)定的和不希望有的調(diào)度。這是不穩(wěn)定的,因?yàn)樗Q于其他人的工作負(fù)荷,而該工作負(fù)荷可能在任何時(shí)間點(diǎn)發(fā)生急速的變化。這是不希望有的,因?yàn)樗谄渌脩舻馁Y源消耗情況。
在公平份額調(diào)度中,歷史的資源使用情況隨著時(shí)間的推移而衰減,從而就使得最近使用的資源對調(diào)度決策具有較大的影響。記錄和衰減歷史的資源使用情況的機(jī)制是必需的,它常常是通過在許多最近的有限長度的時(shí)間間隔內(nèi)的步進(jìn)式衰減函數(shù)來實(shí)現(xiàn)的。對于具有許多用戶的群集,可能需要跟蹤大量歷史的資源使用情況數(shù)據(jù)。
發(fā)明內(nèi)容
基于前面的內(nèi)容,需要一種增強(qiáng)的公平共享調(diào)度功能,該功能對單個(gè)用戶或用戶群更加穩(wěn)定和公平。此外,還需要一種簡化衰減機(jī)制并最小化要跟蹤的歷史的資源使用情況數(shù)據(jù)的量的方法。
通過提供便于確定處理環(huán)境中的作業(yè)的調(diào)度優(yōu)先級的方法,克服了現(xiàn)有技術(shù)的缺點(diǎn),并提供了另外的優(yōu)點(diǎn)。該方法包括,例如,向處理環(huán)境的用戶實(shí)體分配資源的等于或多于零個(gè)使用份額,等于或多于零個(gè)使用份額是,基于處理環(huán)境中可用的資源總量,獨(dú)立于一個(gè)或多個(gè)用戶實(shí)體消耗的資源數(shù)量,為處理環(huán)境定義的多個(gè)使用份額的至少一部分;以及向用戶實(shí)體的待執(zhí)行的作業(yè)分配作業(yè)調(diào)度優(yōu)先級,作業(yè)調(diào)度優(yōu)先級基于用戶實(shí)體的已分配和已使用的使用份額,并獨(dú)立于其他用戶實(shí)體的資源使用狀況。
在再一個(gè)方面,提供了確定具有多個(gè)連接的計(jì)算單元的群集化計(jì)算環(huán)境中的作業(yè)的調(diào)度優(yōu)先級的方法。該方法包括,選擇群集化計(jì)算環(huán)境的資源的可用于分配給群集化計(jì)算環(huán)境的一個(gè)或多個(gè)用戶實(shí)體的多個(gè)使用份額;獲得群集化計(jì)算環(huán)境中可用資源數(shù)量的指示,所述數(shù)量獨(dú)立于資源的消耗并受指數(shù)式衰減函數(shù)的影響;在選擇的數(shù)量的使用份額之間分配資源數(shù)量;向群集化計(jì)算環(huán)境的用戶實(shí)體分配選擇的數(shù)量的使用份額中的等于或多于零個(gè)使用份額;確定用戶實(shí)體的待執(zhí)行的作業(yè)的作業(yè)調(diào)度優(yōu)先級,該確定過程是基于與用戶實(shí)體的已分配的使用份額相比的用戶實(shí)體的已使用的使用份額,并獨(dú)立于一個(gè)或多個(gè)其他用戶實(shí)體的資源使用狀況;基于作業(yè)調(diào)度優(yōu)先級來對要執(zhí)行的作業(yè)進(jìn)行調(diào)度;以及響應(yīng)作業(yè)的至少一次終止以及周期性地收集資源使用情況數(shù)據(jù),其中,收集過程包括累積與用戶實(shí)體的資源使用情況關(guān)聯(lián)的數(shù)據(jù),累積的數(shù)據(jù)包括用戶實(shí)體的過去資源使用情況的貢獻(xiàn)(如果有的話),其中,在累積過程中至少應(yīng)用一次指數(shù)式衰減函數(shù),收集的資源使用情況數(shù)據(jù)可用于確定所述用戶實(shí)體的一個(gè)或多個(gè)其他作業(yè)的作業(yè)調(diào)度優(yōu)先級。
這里還描述并聲明了對應(yīng)于一個(gè)或多個(gè)上文概括的方法的系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。
通過本發(fā)明的技術(shù),來實(shí)現(xiàn)其他功能和優(yōu)點(diǎn)。這里將詳細(xì)描述本發(fā)明的其他實(shí)施例和方面,它們被視為所聲明的發(fā)明的一部分。
在本說明書結(jié)尾時(shí)在權(quán)利要求書中特別指出了并作為示例明確聲明了本發(fā)明的一個(gè)或多個(gè)方面。通過下面的結(jié)合附圖對本發(fā)明進(jìn)行的詳細(xì)說明,可以更好地理解本發(fā)明的前述和其他目的、特征和優(yōu)點(diǎn),其中圖1描述了集成并使用了本發(fā)明的一個(gè)或多個(gè)方面的處理環(huán)境的一個(gè)實(shí)施例;圖2描述了根據(jù)本發(fā)明的一個(gè)方面的用于分配資源使用份額的邏輯的一個(gè)實(shí)施例;圖3描述了根據(jù)本發(fā)明的一個(gè)方面的與基于公平份額調(diào)度提交并執(zhí)行作業(yè)關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例;圖4描述了根據(jù)本發(fā)明的一個(gè)方面的用于在公平份額調(diào)度中使用的作業(yè)優(yōu)先級的作業(yè)優(yōu)先級表達(dá)式的示例;圖5描述了根據(jù)本發(fā)明的一個(gè)方面的與重新計(jì)算作業(yè)優(yōu)先級關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例;圖6描述了根據(jù)本發(fā)明的一個(gè)方面的資源隨時(shí)間的衰減;圖7是根據(jù)本發(fā)明的一個(gè)方面的資源隨時(shí)間的衰減的再一個(gè)圖形描述;圖8描述了根據(jù)本發(fā)明的一個(gè)方面的與累積公平份額調(diào)度的資源使用情況的邏輯的一個(gè)實(shí)施例;以及圖9描述了集成了本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)程序產(chǎn)品的一個(gè)示例。
具體實(shí)施例方式
根據(jù)本發(fā)明的一個(gè)方面,提供了公平份額調(diào)度功能,該功能可以對單個(gè)用戶或用戶群的作業(yè)進(jìn)行穩(wěn)定而公平的調(diào)度。調(diào)度取決于該單個(gè)用戶或用戶群的資源分配和使用情況,而不是其他用戶或用戶群的分配和使用情況。處理環(huán)境的可用資源被分成許多份額。這些資源是為環(huán)境配置并供使用的,且獨(dú)立于資源消耗。給用戶或用戶群分配了一部分份額。然后,給用戶或用戶群的待執(zhí)行的每一個(gè)作業(yè)分配作業(yè)執(zhí)行優(yōu)先級。此優(yōu)先級基于已經(jīng)給用戶或用戶群分配了多少份額,以及已經(jīng)使用了多少份額,并獨(dú)立于處理環(huán)境中的其他用戶的資源使用情況。
由于作業(yè)調(diào)度優(yōu)先級受到與已分配的數(shù)量相比的由用戶或用戶群使用的份額數(shù)量的影響,因此,跟蹤和累積用戶或用戶群的資源使用情況。此外,根據(jù)本發(fā)明的一個(gè)方面,與較遠(yuǎn)的資源使用情況情況相比,作業(yè)調(diào)度優(yōu)先級更容易受到當(dāng)前使用情況的影響,對累積的數(shù)據(jù)應(yīng)用指數(shù)式衰減機(jī)制,以對最近的資源使用情況賦予較大的權(quán)重,對較遠(yuǎn)的資源使用情況情況賦予較小的權(quán)重。
將參考圖1描述集成并使用了本發(fā)明的一個(gè)或多個(gè)方面的處理環(huán)境的一個(gè)實(shí)施例。在一個(gè)示例中,處理環(huán)境是諸如群集化環(huán)境之類的分布式處理環(huán)境,其中,共享了環(huán)境的資源,以執(zhí)行系統(tǒng)任務(wù)。雖然這里所描述的群集化環(huán)境是集成并使用本發(fā)明的一個(gè)或多個(gè)方面,但是,其他類型的環(huán)境,包括非群集化環(huán)境,也可以受益于本發(fā)明的一個(gè)或多個(gè)方面。
圖1描述了群集化環(huán)境100,包括,例如通過一個(gè)或多個(gè)連接104彼此連接在一起的多個(gè)處理單元102,連接104包括但不僅限于有線連接、無線連接或任何種類的網(wǎng)絡(luò)連接,如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、令牌環(huán)網(wǎng)、以太網(wǎng)連接等等。
在一個(gè)示例中,處理單元包括,例如個(gè)人計(jì)算機(jī)、膝上型電腦、工作站、大型機(jī)、小型計(jì)算機(jī)或任何其他種類的處理單元。作為一個(gè)特定示例,每一個(gè)處理單元都是由位于紐約的Armonk的IBM公司提供的pSeries服務(wù)器。(“pSeries”是位于紐約的Armonk的IBM公司的注冊商標(biāo)。)每一個(gè)處理單元都可以是與另一個(gè)單元相同類型的處理單元,也可以是不同的類型。在一個(gè)示例中,每一個(gè)處理單元都執(zhí)行諸如LINUX,或由IBM公司提供的AIX之類的操作系統(tǒng)106。(“AIX”是位于紐約的Armonk的IBM公司的注冊商標(biāo)。)一個(gè)處理單元的操作系統(tǒng)可以與另一個(gè)處理單元的操作系統(tǒng)相同,也可以不同。此外,在其他示例中,一個(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è)。
本發(fā)明的一個(gè)方面的公平份額調(diào)度技術(shù)基于處理環(huán)境中可用的資源總量,而不是基于由用戶消耗的資源總量,來定義資源使用份額。另外,還基于分配的份額,以及由單個(gè)用戶使用的份額,分配作業(yè)調(diào)度優(yōu)先級。下面將參考附圖描述有關(guān)本發(fā)明的一個(gè)方面的公平份額調(diào)度的更多細(xì)節(jié)。
首先請參看圖2,該圖描述了與向用戶實(shí)體分配資源份額關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例。在一個(gè)示例中,此邏輯是由執(zhí)行處理環(huán)境的一個(gè)或多個(gè)處理單元的作業(yè)調(diào)度器執(zhí)行的。此外,對于待由環(huán)境的用戶和/或用戶群共享的每一種類型的資源,都執(zhí)行此邏輯。首先,就處理環(huán)境中的待共享的特定資源的數(shù)量作出判斷,步驟200(圖2)。在一個(gè)實(shí)施例中,它是確定的資源的總量。資源的總量是在應(yīng)用了衰減函數(shù)的情況下從過去到目前處理環(huán)境中的可用的所有資源,以便隨著時(shí)間越來越遠(yuǎn)離當(dāng)前時(shí)間,資源數(shù)量越來越少。例如,為確定CPU資源的總量,使用了下列公式 其中,k是確定衰減過程的速度的衰減常數(shù),是函數(shù)的輸入;而t是消逝時(shí)間量。
作為確定資源數(shù)量的一個(gè)特定示例,如果將共享中央處理器(CPU)資源,那么,確定處理環(huán)境中可用的處理器的數(shù)量。此確定是通過對由處理單元提供的統(tǒng)計(jì)信息進(jìn)行分析來完成的。例如,每一個(gè)處理單元都將該處理單元上可用的中央處理器數(shù)量通知給執(zhí)行作業(yè)調(diào)度器的一個(gè)或多個(gè)管理器。管理器累積此信息,應(yīng)用衰減函數(shù),并將結(jié)果輸入到作業(yè)調(diào)度器。
然后,將獲得的資源數(shù)量分成所需要的份額的總數(shù),步驟202。在一個(gè)示例中,由管理員選擇所需要的份額的總數(shù)。通常,如果在環(huán)境中有大量的用戶,那么,需要大量的份額。份額的總數(shù)越大,所使用的份額的數(shù)量對資源使用情況就越敏感。份額的總數(shù)的示例包括100個(gè)份額,1000個(gè)份額,或任何所需要的數(shù)量。
然后,將份額分配給處理環(huán)境的一個(gè)或多個(gè)用戶和/或用戶群,步驟204。此分配也可以由管理員指定,并作為輸入提供到調(diào)度程序,程序也可以包括定義分配的啟發(fā)式或公式??梢允褂靡粋€(gè)或多個(gè)因素來確定分配方案,包括但不僅限于,預(yù)算、重要性、管理員的選擇等等。各種分配方案的示例包括給用戶1分配10個(gè)份額;給用戶2分配5個(gè)份額;給用戶群1分配20個(gè)份額等等。
在向期望的用戶和/或用戶群分配份額之后,確定給那些用戶和/或用戶群的授予的資源比例。此比例是通過按環(huán)境的份額的總數(shù)劃分分配給用戶的份額數(shù)量來確定的。如此,如果有總的份額數(shù)為100,給用戶1分配了10個(gè)份額,那么,用戶1的比例為10%。類似地,用戶2的比例是5%,用戶群1的比例是20%等等。
在向用戶實(shí)體分配份額之后,用戶實(shí)體可以運(yùn)行基于其已分配和已使用的份額調(diào)度的作業(yè)。即,要調(diào)度的作業(yè)的優(yōu)先級是以請求調(diào)度的用戶實(shí)體所具有的已分配的份額的數(shù)量以及用戶實(shí)體的份額已經(jīng)使用了多少為基礎(chǔ)的。一般而言,仍具有剩余的份額,或剩余的份額越多,作業(yè)優(yōu)先級就越高。下面將參考圖3描述根據(jù)本發(fā)明的一個(gè)方面的公平份額調(diào)度技術(shù)的與調(diào)度作業(yè)關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例。作為一個(gè)示例,由作業(yè)調(diào)度器來執(zhí)行邏輯(步驟300除外)。
首先,用戶提交作業(yè),以在處理環(huán)境中運(yùn)行,步驟300,并例如,由作業(yè)調(diào)度器計(jì)算作業(yè)的優(yōu)先級,步驟302。有許多方式可以確定作業(yè)優(yōu)先級,有許多變量可以在確定時(shí)使用。這些變量的示例包括,例如(a)UserTotalShares-由管理員分配給用戶的份額的總數(shù)。
(b)UserUsedShares-作業(yè)調(diào)度器計(jì)算出的由用戶使用的份額的數(shù)量。
(c)UserRemainingShares-UserTotalShares和UserUsedShares的值之間的差。
(d)UserHasShares-表示用戶是否具有剩余的份額的導(dǎo)出值(例如,0表示沒有剩余的份額;1表示有至少1個(gè)剩余的份額)。
(e)UserSharesExceeded-表示用戶是否超過了其份額數(shù)量的值(例如,0表示它沒有超過其份額數(shù)量;1表示已經(jīng)超過)。
(f)GroupTotalShares-由管理員分配給用戶群的份額的總數(shù)。
(g)GroupUsedShares-作業(yè)調(diào)度器計(jì)算出的由用戶群使用的份額的數(shù)量。
(h)GroupRemainingShares-GroupTotalShares和GroupUsedShares的值之間的差。
(i)GroupHasShares-表示用戶群是否具有剩余的份額的導(dǎo)出值(例如,0表示沒有剩余的份額;1表示有至少1個(gè)剩余的份額)。
(j)GroupSharesExceeded-表示用戶群是否超過了其份額數(shù)量的值(例如,0表示它沒有超過其份額數(shù)量;1表示已經(jīng)超過)。
在作業(yè)優(yōu)先級表達(dá)式使用上述一個(gè)或多個(gè)值來計(jì)算作業(yè)優(yōu)先級。參考圖4描述了這些表達(dá)式的示例。管理員可以指定用于計(jì)算作業(yè)優(yōu)先級的一個(gè)或多個(gè)作業(yè)優(yōu)先級表達(dá)式,步驟400。這些表達(dá)式的示例包括10000*UserHasShares(402);10000*(UserHasShares+GroupHasShares)(404);100*GroupRemainingShares(406)。
還可以有許多其他表達(dá)式。
基于所選擇的表達(dá)式,如果用戶仍具有未使用的份額,INQUIRY408,那么,其優(yōu)先級高于已經(jīng)使用完其所有份額的情況。在一個(gè)示例中,優(yōu)先級值是所選擇的優(yōu)先級表達(dá)式的結(jié)果。例如,如果所選擇的表達(dá)式是上面的402,并且如果UserHasShares=1,那么,優(yōu)先級是10000。
回到圖3,在確定作業(yè)的優(yōu)先級之后,將作業(yè)放在按優(yōu)先級排序的等待隊(duì)列中,步驟304。然后,執(zhí)行作業(yè),優(yōu)先級較高的作業(yè)首先執(zhí)行,步驟306。
作業(yè)結(jié)束時(shí),由作業(yè)調(diào)度器收集該作業(yè)的資源使用情況,步驟308。具體來說,在一個(gè)示例中,一個(gè)作業(yè)屬于一個(gè)用戶和一組用戶,為該用戶以及為該組收集和累積由該作業(yè)使用的資源,步驟310。作為一個(gè)示例,在作業(yè)結(jié)束時(shí),由訪問適當(dāng)信息的調(diào)度器來收集此使用情況。在由Brelsford等人提出的待審批的共同提出的美國系列編號(hào)標(biāo)題為“Fault Tolerant Facility For The AggregationOf Data From Multiple Processing Units”的申請中描述了收集和累積資源使用情況數(shù)據(jù)的另一個(gè)示例,這里引用了該專利作為參考。
然后,將累積的資源使用情況數(shù)據(jù)轉(zhuǎn)換為已使用的份額,步驟312。例如,通過將用戶的累積的資源使用情況數(shù)據(jù)除以每一份額的資源來計(jì)算UserUsedShares(每一份額的資源=資源總量/份額總數(shù)。在一個(gè)示例中,資源總量也將接受與已使用的資源相同的衰減函數(shù),如果它們是時(shí)間敏感的量,即,如果它們隨時(shí)間而消失,如CPU的時(shí)間)。類似地,通過將組的累積的資源使用情況數(shù)據(jù)除以每一份額的資源,確定GroupUsedShares。
在將累積的資源使用情況轉(zhuǎn)換為已使用的份額之后,繼續(xù)進(jìn)行計(jì)算下一個(gè)作業(yè)的作業(yè)優(yōu)先級的處理,步驟302。
在一個(gè)示例中,由作業(yè)調(diào)度器每隔周期性的時(shí)間間隔重新計(jì)算作業(yè)等待隊(duì)列中的作業(yè)的優(yōu)先級。參考圖5描述了與此處理關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例。首先,確定重新計(jì)算作業(yè)優(yōu)先級的頻率,步驟500。作為一個(gè)示例,例如由管理員選擇了每隔5分鐘的時(shí)間間隔。也可以選擇其他時(shí)間間隔。
在指定的時(shí)間間隔結(jié)束時(shí),如上文所描述的,使用任何所需要的表達(dá)式和/或變量,重新計(jì)算等待隊(duì)列中的所有作業(yè)(或其一部分,如果愿意)的作業(yè)優(yōu)先級,步驟502。然后,根據(jù)新的優(yōu)先級,重新排序等待隊(duì)列中的作業(yè),步驟504。此后,邏輯等待下一次重新計(jì)算作業(yè)優(yōu)先級的機(jī)會(huì),步驟506。當(dāng)例如時(shí)間間隔過期時(shí),繼續(xù)重新計(jì)算作業(yè)優(yōu)先級,步驟502。
如前所述,當(dāng)作業(yè)結(jié)束時(shí),收集并累積資源使用情況數(shù)據(jù),然后,將累積的使用情況數(shù)據(jù)轉(zhuǎn)換為已使用的份額。此累積的資源使用情況數(shù)據(jù)本質(zhì)上是歷史性的,并影響調(diào)度決策??梢砸栽S多方式執(zhí)行資源使用情況的收集和累積。然而,根據(jù)本發(fā)明的一個(gè)方面,最近的資源使用情況數(shù)據(jù)比時(shí)間較遠(yuǎn)的資源使用情況數(shù)據(jù)的重要性更大。即,隨著時(shí)間的流逝,相同量的資源的價(jià)值就會(huì)降低。例如,如圖6所示,在當(dāng)前時(shí)間,資源使用情況處于其最大值(600),而時(shí)間變得越久遠(yuǎn),價(jià)值就越低(602)。
在一個(gè)示例中,為每一個(gè)用戶或用戶群的歷史的資源使用情況數(shù)據(jù)只記錄了一個(gè)累積的數(shù)據(jù)。此外,沒有必要丟棄任何舊的數(shù)據(jù),因?yàn)樵诶鄯e的數(shù)據(jù)中,資源使用情況數(shù)據(jù)的影響自然地隨時(shí)間而縮小。累積的數(shù)據(jù)包括所有過去的資源使用情況數(shù)據(jù)(或選擇的量)的份額,不需要有限時(shí)間間隔。在數(shù)據(jù)累積過程中基本上連續(xù)地應(yīng)用衰減機(jī)制,以便累積的數(shù)據(jù)反映總體的時(shí)間衰減的資源使用情況。
在一個(gè)實(shí)施例中,使用的衰減函數(shù)是指數(shù)函數(shù)exp(-k*t),其中,k是確定衰減過程的速度的衰減常數(shù),是函數(shù)的輸入;而t是從第一次報(bào)告或收集資源使用情況開始消逝的時(shí)間量。
當(dāng)收集資源使用情況R1時(shí),其對累積的歷史的資源使用情況的作用根據(jù)衰減函數(shù)而縮小。當(dāng)收集新的資源使用情況R2時(shí),當(dāng)時(shí)它被直接添加到R1的衰減的值中,累積的值隨著時(shí)間的流逝一起衰減。隨著收集新的資源使用情況,此過程可以重復(fù)。如此,不再需要跟蹤單個(gè)資源使用情況。跟蹤累積的資源使用情況數(shù)據(jù)就足夠了。按如下方式表示這樣的指數(shù)函數(shù)的特性R1*exp(-k*(t-t1))+R2*exp(-k*(t-t2))+R3*exp(-k*(t-t3))=S4,S1=R1(在時(shí)間t1)
S2=S1*exp(-k*(t2-t1)+R2(在時(shí)間t2)S3=S2*exp(-k*(t3-t2)+R3(在時(shí)間t3)S4=S3*exp(-k*(t-t3)(在時(shí)間t)。
圖7顯示了此衰減函數(shù)的一個(gè)圖形描述。如圖所示,與水平線700連接的垂直線代表了在過去不同的時(shí)間的報(bào)告的資源使用情況的初始值,在此示例中,在各個(gè)時(shí)間都相同。指數(shù)曲線下方的部分垂直線代表了最初報(bào)告的資源使用情況值的當(dāng)前值。在當(dāng)前時(shí)間702,其值處于高峰。選擇確定了衰變常數(shù)的公平份額時(shí)間間隔704。在一個(gè)示例中,公平份額時(shí)間間隔等于壽命的5%,這是衰減到初始值的5%所需要的時(shí)間。在時(shí)間706報(bào)告的資源使用情況具有當(dāng)前時(shí)間的值,該值小于最初報(bào)告的值的5%。
下面將參考圖8描述使用衰減函數(shù)衰減累積的資源使用情況數(shù)據(jù)的過程。在一個(gè)實(shí)施例中,響應(yīng)例如作業(yè)的結(jié)束或周期性地將新的資源使用情況數(shù)據(jù)報(bào)告給調(diào)度器,步驟800。然后,調(diào)度器將預(yù)先累積的值衰減到當(dāng)前時(shí)間,步驟802,將新的值添加到累積的值,步驟804。例如,如果5分鐘前(t),收集的值是100CPU分鐘,那么,通過乘以100×exp(-k*5)衰減該值,以獲得結(jié)果。然后,將當(dāng)前時(shí)間的新的使用情況數(shù)據(jù),例如,110CPU分鐘,添加到結(jié)果中,這是新的累積值。然后繼續(xù)執(zhí)行步驟800。
此外,為計(jì)算已使用的份額,新的累積值被衰減到當(dāng)前時(shí)間,步驟806,再將衰減的累積值轉(zhuǎn)換為已使用的份額,步驟808。此過程由例如調(diào)度器執(zhí)行。
上文詳細(xì)描述了公平份額調(diào)度功能,該功能允許對資源的劃分基于環(huán)境的可用的資源總量,而不是基于其他人消耗的資源數(shù)量。這種分配資源和定義份額的方式更加穩(wěn)定和公平。之所以更加穩(wěn)定,是因?yàn)樗?dú)立于當(dāng)前的工作負(fù)荷。之所以更加公平,是因?yàn)橛脩粝牡姆蓊~數(shù)量取決于用戶具有的資源數(shù)量和用戶已經(jīng)使用的資源數(shù)量,而不是其他用戶正巧使用的資源數(shù)量。
記錄了由用戶實(shí)體使用的資源數(shù)量,并用于確定已使用的份額的數(shù)量。在一個(gè)示例中,對歷史的資源使用情況數(shù)據(jù)應(yīng)用衰減機(jī)制,以對最近使用情況數(shù)據(jù)賦予較大的權(quán)重。優(yōu)選情況下,被跟蹤的數(shù)據(jù)量大大地減少,因?yàn)閷τ诿恳粋€(gè)用戶實(shí)體,只跟蹤一種數(shù)據(jù),例如包括,過去收集的資源使用情況數(shù)據(jù),以及當(dāng)更新數(shù)據(jù)時(shí)的時(shí)間戳。此外,也沒有必要將歷史的資源使用情況數(shù)據(jù)限制在有限的時(shí)間間隔內(nèi)。最大的貢獻(xiàn)自然地來自最近的歷史的資源使用情況數(shù)據(jù)。這是簡易的記錄使用情況信息的技術(shù),提高了性能并減少了軟件開發(fā)的勞動(dòng)強(qiáng)度。
記錄的歷史的資源使用情況數(shù)據(jù),在應(yīng)用了適當(dāng)?shù)乃p的情況下,被按每個(gè)份額資源數(shù)量地劃分,以獲得用戶和/或用戶群的已使用的份額數(shù)量。每個(gè)份額資源數(shù)量也將接受相同的衰減機(jī)制。從久遠(yuǎn)的過去到當(dāng)前時(shí)間的資源的總量是無窮的,沒有衰減。在每一個(gè)瞬間向資源施加了衰減函數(shù)并從久遠(yuǎn)的過去到當(dāng)前時(shí)間的資源集成的情況下,資源的總量是有限量。通過將此有限量按份額的總數(shù)分配,獲得了每個(gè)份額的資源數(shù)量。已使用的和分配的份額的數(shù)量用于確定作業(yè)調(diào)度優(yōu)先級,以便允許用戶使用它有資格使用的資源的比例。由于已使用的和/或分配的份額的數(shù)量連續(xù)地變化,因此,不時(shí)地重新計(jì)算作業(yè)優(yōu)先級。
本發(fā)明的一個(gè)或多個(gè)方面可以包括在具有計(jì)算機(jī)可使用的介質(zhì)的產(chǎn)品中(例如,一個(gè)或多個(gè)計(jì)算機(jī)程序產(chǎn)品)。例如,介質(zhì)中包含了用于提供和促進(jìn)本發(fā)明的一個(gè)或多個(gè)方面的功能的計(jì)算機(jī)可讀取的程序代碼裝置或邏輯(例如,指令、代碼、命令等等)。產(chǎn)品可以作為計(jì)算機(jī)系統(tǒng)的一部分或單獨(dú)地銷售。
將參考圖9描述集成了本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)程序產(chǎn)品的一個(gè)示例。計(jì)算機(jī)程序產(chǎn)品900包括,一個(gè)或多個(gè)計(jì)算機(jī)可使用的介質(zhì)902,在其上存儲(chǔ)了計(jì)算機(jī)可讀取的程序代碼裝置或邏輯904,以提供和促進(jìn)本發(fā)明的一個(gè)或多個(gè)方面。介質(zhì)可以是電子的、磁性的、光學(xué)的、電磁的、紅外線的或半導(dǎo)體系統(tǒng)(或設(shè)備)或傳播介質(zhì)。計(jì)算機(jī)可讀的介質(zhì)的示例包括半導(dǎo)體或固態(tài)存儲(chǔ)器,磁帶,可移動(dòng)計(jì)算機(jī)磁盤,隨機(jī)存取存儲(chǔ)器(RAM),只讀存儲(chǔ)器(ROM),硬磁盤和光盤。光盤的示例包括光盤-只讀存儲(chǔ)器(CD-ROM),光盤讀取/寫入(CD-R/W)和DVD。
程序指令的序列或由一個(gè)或多個(gè)計(jì)算機(jī)可讀取的程序代碼裝置或邏輯定義的一個(gè)或多個(gè)相互關(guān)聯(lián)的模塊指示了本發(fā)明的一個(gè)或多個(gè)方面的性能。
這里所描述的公平份額調(diào)度功能的一個(gè)或多個(gè)方面包括在或可以包括在各種產(chǎn)品中,包括但不僅限于,工作負(fù)荷管理產(chǎn)品,如由IBM公司提供的Tivoli Workload Scheduler LoadLeveler。(“LoadLeveler”是位于紐約的Armonk的IBM公司的注冊商標(biāo)。)其他產(chǎn)品包括但不僅限于,其他工作負(fù)荷管理產(chǎn)品,也可以包括本發(fā)明的一個(gè)或多個(gè)方面。
優(yōu)選情況下,本發(fā)明的一個(gè)或多個(gè)方面允許處理環(huán)境中可用的資源的總量被分成有限數(shù)量的份額,這是處理環(huán)境中的資源的份額的總數(shù)。管理員指定了資源被分成的份額的總數(shù)以及給每一個(gè)用戶或用戶群分配的份額數(shù)量。分配的份額與份額的總數(shù)的比率指定了分配給用戶實(shí)體的資源的比例。定義的比例獨(dú)立于其他用戶實(shí)體消耗的資源數(shù)量,作業(yè)調(diào)度優(yōu)先級獨(dú)立于其他用戶實(shí)體對資源的使用。這種分配資源比例的方式能夠調(diào)整使用的份額數(shù)量對資源使用情況的敏感性,使得向用戶或用戶群分配份額變得更加容易和靈活。份額的資源值是穩(wěn)定的,假設(shè)一個(gè)群集的資源數(shù)量是固定的。此外,優(yōu)選情況下,管理員被允許指定已使用的和分配的份額如何影響作業(yè)調(diào)度優(yōu)先級,以實(shí)現(xiàn)在用戶和用戶群之間公平地共享群集資源的目標(biāo)。這給管理員提供了調(diào)整公平份額調(diào)度對機(jī)器群集中的作業(yè)調(diào)度有多少影響的靈活性。利用本發(fā)明的一個(gè)或多個(gè)方面,在某一時(shí)間段有效地共享真實(shí)的資源,因?yàn)楹芫靡郧暗馁Y源使用情況數(shù)據(jù)由于衰減對歷史的資源使用情況數(shù)據(jù)的貢獻(xiàn)很小。
雖然這里提供了一個(gè)或多個(gè)示例,但是,這些只是示例而已。在不偏離本發(fā)明的精神的情況下,可以對這些示例作出許多變化。例如,這里所提供的示例之外的處理環(huán)境可以包括和/或受益于本發(fā)明的一個(gè)或多個(gè)方面。例如,環(huán)境可以不是群集化環(huán)境,和/或它可以包括比這里所描述的更多或更少的處理單元。再此外,環(huán)境可以包括Linux或AIX之外的操作系統(tǒng)。更進(jìn)一步,也可以使用這里所描述的之外的其他網(wǎng)絡(luò)和/或連接。更進(jìn)一步,一個(gè)或多個(gè)處理單元可以不同于pSeries服務(wù)器。還存在許多其他變化。
例如,可使用適用于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括至少一個(gè)通過系統(tǒng)總線直接或間接地連接到存儲(chǔ)器元件處理器的。存儲(chǔ)器元件包括,例如,在程序代碼的實(shí)際執(zhí)行過程中使用的本地存儲(chǔ)器,大容量存儲(chǔ)器,以及高速緩沖存儲(chǔ)器,該高速緩沖存儲(chǔ)器提供了至少某些程序代碼的臨時(shí)存儲(chǔ)器,以便減少在執(zhí)行過程中必須從大容量存儲(chǔ)器檢索代碼的次數(shù)。
輸入/輸出或I/O設(shè)備(包括但不僅限于,鍵盤、顯示器、指示設(shè)備,等等)可以直接或者通過I/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)卡只是幾個(gè)可用的網(wǎng)絡(luò)適配器類型。
本發(fā)明的一個(gè)或多個(gè)方面的功能可以以軟件、固件、硬件或其某些組合來實(shí)現(xiàn)。可以提供至少一個(gè)由機(jī)器可讀取的程序存儲(chǔ)設(shè)備,其中包含了由機(jī)器可執(zhí)行的至少一個(gè)指令程序以執(zhí)行本發(fā)明的功能。
這里所描述的流程圖只是示例。在不偏離本發(fā)明的精神的情況下,對這里所描述的這些圖表或步驟(或操作)可以有許多更改。例如,可以以不同順序執(zhí)行各個(gè)步驟,也可以添加、刪除或修改步驟。所有這些變化被視為權(quán)利要求要求保護(hù)的本發(fā)明的一部分。
雖然這里詳細(xì)描述了優(yōu)選實(shí)施例,但是,對于那些本領(lǐng)域技術(shù)人員來說顯而易見的是,在不偏離本發(fā)明的精神的情況下,可以進(jìn)行各種修改、添加,替換等等,因此,也被視為在如下面的權(quán)利要求所定義的本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種便于確定處理環(huán)境中的作業(yè)的調(diào)度優(yōu)先級的方法,所述方法包括向處理環(huán)境的用戶實(shí)體分配資源的等于或多于零個(gè)使用份額,所述等于或多于零個(gè)使用份額是,基于處理環(huán)境中可用的資源總量,獨(dú)立于一個(gè)或多個(gè)用戶實(shí)體消耗的資源數(shù)量,為處理環(huán)境定義的多個(gè)使用份額的至少一部分;以及向用戶實(shí)體的待執(zhí)行的作業(yè)分配作業(yè)調(diào)度優(yōu)先級,所述作業(yè)調(diào)度優(yōu)先級基于用戶實(shí)體的已分配和已使用的使用份額,并獨(dú)立于其他用戶實(shí)體的資源使用狀況。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括定義多個(gè)使用份額,所述定義過程包括獲得處理環(huán)境中可用資源數(shù)量的指示,所述數(shù)量獨(dú)立于資源的消耗并受指數(shù)式衰減函數(shù)的影響;以及在多個(gè)使用份額之間分配資源數(shù)量。
3.根據(jù)權(quán)利要求1所述的方法,其中,分配過程包括計(jì)算作業(yè)調(diào)度優(yōu)先級,所述計(jì)算使用基于用戶實(shí)體是否具有未使用的份額的指示以及用戶實(shí)體的剩余份額的數(shù)量中的至少一個(gè)的表達(dá)式。
4.根據(jù)權(quán)利要求3所述的方法,其中,下列各項(xiàng)中的至少一個(gè)適用用戶實(shí)體的未使用的份額越多,作業(yè)調(diào)度優(yōu)先級就越高;具有未使用的份額的用戶實(shí)體的作業(yè)調(diào)度優(yōu)先級較高;以及已經(jīng)用完或超過它們的分配的份額的用戶實(shí)體的作業(yè)調(diào)度優(yōu)先級較低。
5.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括在一個(gè)或多個(gè)周期性的時(shí)間間隔重新計(jì)算作業(yè)調(diào)度優(yōu)先級。
6.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括執(zhí)行作業(yè);以及響應(yīng)作業(yè)結(jié)束,收集資源使用情況數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的方法,其中,收集過程包括累積與用戶實(shí)體的資源使用情況關(guān)聯(lián)的數(shù)據(jù),所述累積的數(shù)據(jù)包括用戶實(shí)體的過去資源使用情況的貢獻(xiàn),其中,在累積過程中至少應(yīng)用一次衰減函數(shù)。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述衰減函數(shù)對最近的資源使用情況賦予較大的權(quán)重,對較遠(yuǎn)的資源使用情況情況賦予較小的權(quán)重。
9.根據(jù)權(quán)利要求7所述的方法,其中,衰減函數(shù)包括指數(shù)式衰減函數(shù)。
10.根據(jù)權(quán)利要求7所述的方法,其中,累積的數(shù)據(jù)被轉(zhuǎn)換為用戶實(shí)體的已使用的份額,并用于計(jì)算用戶實(shí)體的作業(yè)的作業(yè)調(diào)度優(yōu)先級。
11.一種便于確定包括多個(gè)連接的計(jì)算單元的群集化計(jì)算環(huán)境中的作業(yè)的調(diào)度優(yōu)先級的方法,所述方法包括選擇群集化計(jì)算環(huán)境的資源的可用于分配給群集化計(jì)算環(huán)境的一個(gè)或多個(gè)用戶實(shí)體的多個(gè)使用份額;獲得群集化計(jì)算環(huán)境中可用資源數(shù)量的指示,所述數(shù)量獨(dú)立于資源的消耗并受指數(shù)式衰減函數(shù)的影響;在選擇多個(gè)使用份額之間分配資源數(shù)量;向群集化計(jì)算環(huán)境的用戶實(shí)體分配選擇的數(shù)量的使用份額中的等于或多于零個(gè)使用份額;確定用戶實(shí)體的待執(zhí)行的作業(yè)的作業(yè)調(diào)度優(yōu)先級,所述確定過程基于與用戶實(shí)體的已分配的使用份額相比的用戶實(shí)體的已使用的使用份額,并獨(dú)立于一個(gè)或多個(gè)其他用戶實(shí)體的資源使用狀況;基于作業(yè)調(diào)度優(yōu)先級來對要執(zhí)行的作業(yè)進(jìn)行調(diào)度;以及響應(yīng)作業(yè)的至少一次終止以及周期性地收集資源使用情況數(shù)據(jù),其中,收集過程包括累積與用戶實(shí)體的資源使用情況關(guān)聯(lián)的數(shù)據(jù),所述累積的數(shù)據(jù)包括,如果有的話,用戶實(shí)體的過去資源使用情況的貢獻(xiàn),其中,在累積過程中至少應(yīng)用一次指數(shù)式衰減函數(shù),所述收集的資源使用情況數(shù)據(jù)可用于確定所述用戶實(shí)體的一個(gè)或多個(gè)其他作業(yè)的作業(yè)調(diào)度優(yōu)先級。
12.一種便于確定處理環(huán)境中的作業(yè)的調(diào)度優(yōu)先級的系統(tǒng),所述系統(tǒng)包括至少一個(gè)處理單元,用于向處理環(huán)境的用戶實(shí)體分配資源的等于或多于零個(gè)使用份額,所述等于或多于零個(gè)使用份額是,基于處理環(huán)境中可用的資源總量,獨(dú)立于一個(gè)或多個(gè)用戶實(shí)體消耗的資源數(shù)量,為處理環(huán)境定義的多個(gè)使用份額的至少一部分;以及向用戶實(shí)體的待執(zhí)行的作業(yè)分配作業(yè)調(diào)度優(yōu)先級,所述作業(yè)調(diào)度優(yōu)先級基于用戶實(shí)體的已分配和已使用的使用份額,并獨(dú)立于其他用戶實(shí)體的資源使用狀況。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,至少一個(gè)處理單元被進(jìn)一步用于定義多個(gè)使用份額,定義過程包括獲得處理環(huán)境中可用資源數(shù)量的指示,所述數(shù)量獨(dú)立于資源的消耗并受指數(shù)式衰減函數(shù)的影響;以及在多個(gè)使用份額之間分配資源數(shù)量。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,至少一個(gè)處理單元用于執(zhí)行作業(yè);以及響應(yīng)作業(yè)的結(jié)束,收集資源使用情況數(shù)據(jù),其中,收集過程包括累積與用戶實(shí)體的資源使用情況關(guān)聯(lián)的數(shù)據(jù),所述累積的數(shù)據(jù)包括用戶實(shí)體的過去資源使用情況的貢獻(xiàn),其中,在累積過程中至少應(yīng)用一次指數(shù)式衰減函數(shù)。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,累積的數(shù)據(jù)被轉(zhuǎn)換為用戶實(shí)體的已使用的份額,并用于計(jì)算用戶實(shí)體的作業(yè)的作業(yè)調(diào)度優(yōu)先級。
全文摘要
公開了便于確定作業(yè)的調(diào)度優(yōu)先級的方法和系統(tǒng)。公平份額調(diào)度以將可用資源的總量劃分為有限數(shù)量的份額,并向單個(gè)用戶或用戶群分配一部分份額,作為指定用戶或用戶群有權(quán)取得的資源比例的方式。用戶或用戶群的作業(yè)的調(diào)度優(yōu)先級取決于已分配的和該單個(gè)用戶或用戶群的已使用的份額的可自定義表達(dá)式。累積用戶或用戶群的使用情況數(shù)據(jù),并應(yīng)用指數(shù)式衰減函數(shù),以便通過一種數(shù)據(jù)和更新時(shí)間戳跟蹤用戶或用戶群的歷史的資源使用情況數(shù)據(jù)。
文檔編號(hào)G06F9/50GK101063947SQ20071000623
公開日2007年10月31日 申請日期2007年2月7日 優(yōu)先權(quán)日2006年4月27日
發(fā)明者鐘恩慈 申請人:國際商業(yè)機(jī)器公司