專利名稱:實時作業(yè)調度系統(tǒng)及方法
技術領域:
本發(fā)明涉及計算機技術高性能領域,特別涉及一種作業(yè)調度系統(tǒng)及方法。
背景技術:
目前,高性能服務器已經被廣泛應用在科研、政府和國防部門,而且高性能服務器 上的應用軟件也越來越普及。多種應用軟件的同時運行將會導致資源沖突,影響某些軟件 的性能,例如,實時軟件對于相應時間有著非常強的要求,在某些情況下,超過截止時間的 實時任務的結果將是無效結果,如氣象軟件,超過規(guī)定時間的氣象數(shù)據(jù)將被視為無效數(shù)據(jù)。
現(xiàn)有的作業(yè)調度系統(tǒng)采用公平的調度策略,沒有引入優(yōu)先級的概念,無法保證對 反應速度具有較高要求的實時軟件的快速運行。因此需要一種系統(tǒng)和方法解決上述問題。
發(fā)明內容
針對相關技術中存在的一個或多個問題,本發(fā)明的目的在于提供一種實時作業(yè)調 度系統(tǒng)及方法,以解決上述問題中的至少之一。 為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種實時作業(yè)調度方法,包括以 下步驟創(chuàng)建多個隊列。將多個隊列設置成不同的優(yōu)先級別,并根據(jù)優(yōu)先級別設置隊列的搶 占性。判斷是否存在實時作業(yè),如果不存在,則繼續(xù)執(zhí)行現(xiàn)有作業(yè);如果存在,則將現(xiàn)有作業(yè) 掛起,并釋放掉現(xiàn)有作業(yè)申請的資源,然后將實時作業(yè)運行到服務器上。在實時作業(yè)運行結 束后,再將被掛起的現(xiàn)有作業(yè)恢復到服務器上繼續(xù)運行。 優(yōu)選地,采用自適應算法設置隊列的優(yōu)先級別和搶占性,包括以下步驟收集集群 信息,并查找集群信息中關于集群規(guī)模的信息。根據(jù)集群規(guī)模設置隊列的優(yōu)先級別和搶占 性。其中,如果集群規(guī)模小于集群規(guī)模的閾值,則將隊列設置成兩種優(yōu)先級別,包括高優(yōu)先 級和低優(yōu)先級,高優(yōu)先級隊列的作業(yè)優(yōu)先調度并搶占低優(yōu)先級隊列的作業(yè)的資源;如果集 群規(guī)模不小于集群規(guī)模的閾值,則將隊列設置成三種優(yōu)先級別,包括高優(yōu)先級、中優(yōu)先級和 低優(yōu)先級,高優(yōu)先級隊列的作業(yè)優(yōu)先調度并搶占中優(yōu)先級隊列的作業(yè)的資源和低優(yōu)先級隊 列的作業(yè)的資源,中優(yōu)先級隊列的作業(yè)比低優(yōu)先級隊列的作業(yè)優(yōu)先調度。其中,集群規(guī)模的 閾值為32。
優(yōu)選地,判斷是否存在實時作業(yè)包括以下步驟 A.判斷作業(yè)相關的用戶是否具有提交實時作業(yè)的權限,如果具有權限,則執(zhí)行步 驟B,否則判定作業(yè)為非實時作業(yè)。 B.判斷作業(yè)的級別是否為高優(yōu)先級,如果是高優(yōu)先級,則作業(yè)為實時作業(yè),否則為 非實時作業(yè)。 根據(jù)本發(fā)明的另一個方面,還提出一種實時作業(yè)調度系統(tǒng),包括隊列設置模塊、實 時判斷模塊和掛起模塊。其中,隊列設置模塊用于將多個隊列設置成不同的優(yōu)先級別,并根 據(jù)優(yōu)先級別設置隊列的搶占性。實時判斷模塊用于判斷是否存在實時作業(yè)。掛起模塊用于 當存在實時作業(yè)時,將現(xiàn)有作業(yè)掛起,并釋放現(xiàn)有作業(yè)的資源,以及在實時作業(yè)運行結束后恢復現(xiàn)有作業(yè)的運行。 優(yōu)選地,隊列設置模塊包括信息獲取模塊、優(yōu)先級別設置模塊和搶占性設置模塊。 其中,信息獲取模塊用于收集集群信息,并從集群信息中獲取集群規(guī)模信息。優(yōu)先級別設置 模塊用于根據(jù)集群規(guī)模信息設置隊列的優(yōu)先級別。如果集群規(guī)模小于集群規(guī)模的閾值,則 將隊列設置成兩種優(yōu)先級別,包括高優(yōu)先級和低優(yōu)先級;如果集群規(guī)模不小于集群規(guī)模的 閾值,則將隊列設置成三種優(yōu)先級別,包括高優(yōu)先級、中優(yōu)先級和低優(yōu)先級。搶占性設置模 塊用于根據(jù)隊列的優(yōu)先級別設置隊列的搶占性。如果隊列被設置成兩種優(yōu)先級,則將高優(yōu) 先級的隊列設置成搶占者,低優(yōu)先級的隊列設置成被搶占者;如果隊列被設置成三種優(yōu)先 級,則將高優(yōu)先級的隊列設置成搶占者,將中優(yōu)先級的隊列和低優(yōu)先級的隊列設置成被搶 占者。 優(yōu)選地,實時判斷模塊包括用戶權限判斷模塊和優(yōu)先級別判斷模塊。其中,用戶權 限判斷模塊用于判斷作業(yè)相關的用戶是否具有提交實時作業(yè)的權限。優(yōu)先級別判斷模塊用 于判斷作業(yè)的優(yōu)先級別是否是高優(yōu)先級,如果是,則判斷作業(yè)為實時作業(yè),否則為非實時作 業(yè)。 借助本發(fā)明上述至少一個技術方案,通過采用優(yōu)先調度機制和搶占機制,實現(xiàn)了 應用軟件的實時性。
本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結合附圖對實施例的描述中將變 得明顯和容易理解,其中 圖1為根據(jù)本發(fā)明的實時作業(yè)調度方法的流程圖;以及
圖2為根據(jù)本發(fā)明的實時作業(yè)調度系統(tǒng)的結構圖。
具體實施例方式
考慮到相關技術中存在的問題,本發(fā)明提供一種實時作業(yè)調度系統(tǒng)及方法。下面
詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出。應理解,下面通過參考附圖描
述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。 圖l為根據(jù)本發(fā)明的實時作業(yè)調度方法的流程圖,如圖l所示,該方法包括以下步
驟 步驟S110,創(chuàng)建多個隊列。 步驟S120,將多個隊列設置成不同的優(yōu)先級別,并根據(jù)優(yōu)先級別設置隊列的搶占性。 具體地,在本發(fā)明實施例中,采用自適應算法設置隊列的優(yōu)先級別和搶占性。當 然,本領域技術人員還能夠根據(jù)下述方案提出其他修改或變化,這些修改或變化均應包含 在本發(fā)明的包含范圍之內。 首先,收集集群信息,并從集群信息中獲取集群規(guī)模信息。然后,根據(jù)集群規(guī)模信 息設置隊列的優(yōu)先級別和搶占性。如果集群規(guī)模小于集群規(guī)模的閾值,則將隊列設置成兩 種優(yōu)先級別,包括高優(yōu)先級和低優(yōu)先級,高優(yōu)先級隊列的作業(yè)優(yōu)先調度并搶占低優(yōu)先級隊 列的作業(yè)的資源;如果集群規(guī)模不小于集群規(guī)模的閾值,則將隊列設置成三種優(yōu)先級別,包括高優(yōu)先級、中優(yōu)先級和低優(yōu)先級,高優(yōu)先級隊列的作業(yè)優(yōu)先調度并搶占中優(yōu)先級隊列的 作業(yè)的資源和低優(yōu)先級隊列的作業(yè)的資源,中優(yōu)先級隊列的作業(yè)比低優(yōu)先級隊列的作業(yè)優(yōu) 先調度。其中,集群規(guī)模的閾值可隨機設置,在本實施例中,設為32。 步驟S130,判斷是否存在實時作業(yè),如果存在,則執(zhí)行步驟S140,否則繼續(xù)執(zhí)行現(xiàn) 有作業(yè)。 具體地,對于如何判斷是否存在實時作業(yè),本發(fā)明提出的可能的判斷方案如下,當 然本領域技術人員還能夠根據(jù)下述方案提出其他修改或變化,這些修改或變化均應包含在 本發(fā)明的包含范圍之內。 首先,檢查作業(yè)相關的用戶的身份,判斷用戶是否具有提交實時作業(yè)的權限,如果
沒有,則判斷該作業(yè)為非實時作業(yè),否則,繼續(xù)察看作業(yè)的級別,如果該作業(yè)的級別為高優(yōu)
先級,則判斷該作業(yè)為實時作業(yè),否則為非實時作業(yè)。 步驟S140,將現(xiàn)有作業(yè)掛起,釋放掉現(xiàn)有作業(yè)申請的資源。 步驟S150,將實時作業(yè)運行到服務器上。 步驟S160,實時作業(yè)運行結束后,將被掛起的現(xiàn)有作業(yè)恢復到服務器上繼續(xù)運行。
下面結合附圖2詳細描述本發(fā)明的實時作業(yè)調度系統(tǒng),該系統(tǒng)包括隊列設置模塊 100、實時判斷模塊200和掛起模塊300。其中,隊列設置模塊100用于將多個隊列設置成 不同的優(yōu)先級別,并根據(jù)優(yōu)先級別設置隊列的搶占性。實時判斷模塊200用于判斷是否存 在實時作業(yè)。掛起模塊300用于當存在實時作業(yè)時,將現(xiàn)有作業(yè)掛起,并釋放現(xiàn)有作業(yè)的資 源,以及在實時作業(yè)運行結束后恢復現(xiàn)有作業(yè)的運行。 隊列設置模塊100包括信息獲取模塊110、優(yōu)先級別設置模塊120和搶占性設置模 塊130。其中,信息獲取模塊IIO用于收集集群信息,并從集群信息中獲取集群規(guī)模信息。 優(yōu)先級別設置模塊120用于根據(jù)集群規(guī)模信息設置隊列的優(yōu)先級別。如果集群規(guī)模小于 集群規(guī)模的閾值,則將隊列設置成兩種優(yōu)先級別,包括高優(yōu)先級和低優(yōu)先級;如果集群規(guī)模 不小于集群規(guī)模的閾值,則將隊列設置成三種優(yōu)先級別,包括高優(yōu)先級、中優(yōu)先級和低優(yōu)先 級。搶占性設置模塊130用于根據(jù)隊列的優(yōu)先級別設置隊列的搶占性。如果隊列被設置成 兩種優(yōu)先級,則高優(yōu)先級隊列的作業(yè)優(yōu)先調度并搶占低優(yōu)先級隊列的作業(yè)的資源;如果隊 列被設置成三種優(yōu)先級,則高優(yōu)先級隊列的作業(yè)優(yōu)先調度并搶占中優(yōu)先級隊列的作業(yè)的資 源和低優(yōu)先級隊列的作業(yè)的資源,中優(yōu)先級隊列的作業(yè)比低優(yōu)先級隊列的作業(yè)優(yōu)先調度。
實時判斷模塊200包括用戶權限判斷模塊210和優(yōu)先級別判斷模塊220。其中,用 戶權限判斷模塊210用于判斷作業(yè)相關的用戶是否具有提交實時作業(yè)的權限。優(yōu)先級別判 斷模塊220用于判斷作業(yè)的優(yōu)先級別是否是高優(yōu)先級,如果是,則判斷作業(yè)為實時作業(yè),否 則為非實時作業(yè)。 應理解,上述實施例僅是示意性的實施例,并不限制本發(fā)明僅能夠通過上述實施 例實現(xiàn)。本領域的普通技術人員還能夠根據(jù)上述方案提出其他修改或變化,例如改變隊列 的優(yōu)先級別的設置方法,這些修改或變化均應包含在本發(fā)明的包含范圍之內。
本發(fā)明通過采用優(yōu)先調度機制和搶占機制,在作業(yè)層次上實現(xiàn)了應用軟件的實時 性,用戶對作業(yè)的控制更方便。并且,在負載較大的高性能服務器上,本發(fā)明的性能可以不 受影響。除此之外,將本發(fā)明結合作業(yè)調度系統(tǒng)的其他功能,可提高高性能服務器的吞吐
盡管已經示出和描述了本發(fā)明的實施例,對于本領域的普通技術人員而言,可以 理解在不脫離本發(fā)明的原理和精神的情況下可以對這些實施例進行多種變化、修改、替換
和變型,本發(fā)明的范圍由所附權利要求及其等同限定。
權利要求
一種作業(yè)調度的方法,其特征在于,所述方法包括以下步驟A.創(chuàng)建多個隊列;B.將所述多個隊列設置成不同的優(yōu)先級別,并根據(jù)所述隊列的優(yōu)先級別設置所述隊列的搶占性;C.判斷是否存在實時作業(yè),如果存在,則執(zhí)行步驟D,否則繼續(xù)執(zhí)行現(xiàn)有作業(yè);D.將所述現(xiàn)有作業(yè)掛起,釋放掉所述現(xiàn)有作業(yè)申請的資源;E.將所述實時作業(yè)運行到服務器上;以及F.所述實時作業(yè)運行結束后,將所述被掛起的現(xiàn)有作業(yè)恢復到所述服務器上繼續(xù)運行。
2. 根據(jù)權利要求1所述的方法,其特征在于,采用自適應算法設置所述隊列的優(yōu)先級 別和搶占性,包括以下步驟收集集群信息,并查找所述集群信息中關于集群規(guī)模的信息;以及根據(jù)所述集群規(guī)模設置所述隊列的優(yōu)先級別和搶占性。
3. 根據(jù)權利要求1或2所述的方法,其特征在于,所述根據(jù)所述集群規(guī)模設置所述隊列的優(yōu)先級別和搶占性,包括如果所述集群規(guī)模小于集群規(guī)模的閾值,則將所述隊列設置成兩種優(yōu)先級別,包括高 優(yōu)先級和低優(yōu)先級,其中,所述高優(yōu)先級隊列的作業(yè)優(yōu)先調度并搶占所述低優(yōu)先級隊列的作業(yè)的資源;以及如果所述集群規(guī)模不小于所述集群規(guī)模的閾值,則將所述隊列設置成三種優(yōu)先級別, 包括高優(yōu)先級、中優(yōu)先級和低優(yōu)先級,其中,所述高優(yōu)先級隊列的作業(yè)優(yōu)先調度并搶占所述 中優(yōu)先級隊列的作業(yè)的資源和所述低優(yōu)先級隊列的作業(yè)的資源,所述中優(yōu)先級隊列的作業(yè) 比所述低優(yōu)先級隊列的作業(yè)優(yōu)先調度。
4. 根據(jù)權利要求1所述的方法,其特征在于,所述判斷是否存在實時作業(yè)包括以下步驟A. 判斷作業(yè)相關的用戶是否具有提交實時作業(yè)的權限,如果具有所述權限,則執(zhí)行步 驟B,否則判定所述作業(yè)為非實時作業(yè);以及B. 判斷所述作業(yè)的級別是否為高優(yōu)先級,如果是高優(yōu)先級,則所述作業(yè)為實時作業(yè),否 則為非實時作業(yè)。
5. 根據(jù)權利要求1至3中任一項所述的方法,其特征在于,所述集群規(guī)模的閾值為32。
6. —種作業(yè)調度的系統(tǒng),其特征在于,所述系統(tǒng)包括隊列設置模塊,用于將多個隊列設置成不同的優(yōu)先級別,并根據(jù)所述隊列的優(yōu)先級別設置所述隊列的搶占性;實時判斷模塊,用于判斷是否存在實時作業(yè);以及掛起模塊,用于當存在實時作業(yè)時,將現(xiàn)有作業(yè)掛起,并釋放所述現(xiàn)有作業(yè)的資源,以 及在所述實時作業(yè)運行結束后恢復所述現(xiàn)有作業(yè)的運行。
7. 根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述隊列設置模塊包括 信息獲取模塊,用于收集集群信息,并從所述集群信息中獲取集群規(guī)模信息; 優(yōu)先級別設置模塊,用于根據(jù)所述集群規(guī)模信息設置所述隊列的優(yōu)先級別;以及 搶占性設置模塊,用于根據(jù)所述隊列的優(yōu)先級別設置所述隊列的搶占性。
8. 根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述實時判斷模塊包括 用戶權限判斷模塊,用于判斷作業(yè)相關的用戶是否具有提交實時作業(yè)的權限;以及 優(yōu)先級別判斷模塊,用于判斷所述作業(yè)的優(yōu)先級別是否是高優(yōu)先級,如果是,則所述作業(yè)為實時作業(yè),否則為非實時作業(yè)。
9. 根據(jù)權利要求6或7所述的系統(tǒng),其特征在于,所述優(yōu)先級別設置模塊根據(jù)所述集群 規(guī)模信息設置所述隊列的優(yōu)先級別,包括如果所述集群規(guī)模小于集群規(guī)模的閾值,則將所述隊列設置成兩種優(yōu)先級別,包括高 優(yōu)先級和低優(yōu)先級;如果所述集群規(guī)模不小于集群規(guī)模的閾值,則將所述隊列設置成三種優(yōu)先級別,包括 高優(yōu)先級、中優(yōu)先級和低優(yōu)先級。
10. 根據(jù)權利要求6、7或9所述的系統(tǒng),其特征在于,所述搶占性設置模塊根據(jù)所述隊 列的優(yōu)先級別設置所述隊列的搶占性,包括如果所述隊列設置成兩種優(yōu)先級別,則將所述高優(yōu)先級的隊列設置成搶占者,所述低 優(yōu)先級的隊列設置成被搶占者;如果所述隊列設置成三種優(yōu)先級別,則將所述高優(yōu)先級的隊列設置成搶占者,所述中 優(yōu)先級的隊列和所述低優(yōu)先級的隊列設置成被搶占者。
全文摘要
本發(fā)明提供了一種實時作業(yè)調度系統(tǒng)和方法。其中,該方法包括以下步驟創(chuàng)建多個隊列。將多個隊列設置成不同的優(yōu)先級別,并根據(jù)優(yōu)先級別設置隊列的搶占性。判斷是否存在實時作業(yè),如果不存在,則繼續(xù)執(zhí)行現(xiàn)有作業(yè);如果存在,則將現(xiàn)有作業(yè)掛起,并釋放掉現(xiàn)有作業(yè)申請的資源,然后將實時作業(yè)運行到服務器上。在實時作業(yè)運行結束后,再將被掛起的現(xiàn)有作業(yè)恢復到服務器上繼續(xù)運行。本發(fā)明通過采用優(yōu)先調度機制和搶占機制,實現(xiàn)了應用軟件的實時性。
文檔編號G06N3/12GK101694631SQ20091023530
公開日2010年4月14日 申請日期2009年9月30日 優(yōu)先權日2009年9月30日
發(fā)明者歷軍, 張海闊, 張濤, 李偉偉, 李媛, 聶華, 邵宗有 申請人:曙光信息產業(yè)(北京)有限公司;