專利名稱:一種基于內(nèi)存獨(dú)占的作業(yè)調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高性能計(jì)算中的作業(yè)調(diào)度,特別涉及一種基于內(nèi)存獨(dú)占的作業(yè)調(diào)度方法。
背景技術(shù):
在高性能計(jì)算領(lǐng)域,通常應(yīng)用大型應(yīng)用軟件對于內(nèi)存的消耗量非常大,很容易出現(xiàn)部分節(jié)點(diǎn)內(nèi)存耗盡、節(jié)點(diǎn)宕機(jī)的情況。這種情況的出現(xiàn)會(huì)嚴(yán)重影響大型集群的可用性。出現(xiàn)這一問題的原因在于,市場上的多數(shù)調(diào)度系統(tǒng)對于內(nèi)存的管理不是很完善,通常的做法是統(tǒng)計(jì)作業(yè)的實(shí)際使用量,當(dāng)超過限額時(shí)殺死作業(yè)。這種方法可以解決部分某些場景,但是不能根本解決這一問題。因?yàn)樯鲜龇椒ㄊ菑淖鳂I(yè)的角度檢查內(nèi)存,而作業(yè)內(nèi)存超限和節(jié)點(diǎn)內(nèi)存超限是兩個(gè)不同的問題,即如果作業(yè)內(nèi)存超限并不一定導(dǎo)致節(jié)點(diǎn)內(nèi)存超限,而節(jié)點(diǎn)內(nèi)存超限也不一定是因?yàn)槠溥\(yùn)行的作業(yè)有內(nèi)存超限的問題。最根本的解決辦法是從節(jié)點(diǎn)操作系統(tǒng)的角度調(diào)度作業(yè)來解決節(jié)點(diǎn)內(nèi)存耗盡的問題。發(fā)明內(nèi)容
本發(fā)明的目的是通過作業(yè)的內(nèi)存預(yù)測參數(shù)(以及進(jìn)程內(nèi)存預(yù)測參數(shù))和節(jié)點(diǎn)內(nèi)存配置信息來調(diào)度作業(yè)。該方法可以相對準(zhǔn)確的預(yù)測內(nèi)存的使用情況,從而根據(jù)這一信息解決作業(yè)調(diào)度問題,達(dá)到控制節(jié)點(diǎn)內(nèi)存消耗的目的。
一種基于內(nèi)存獨(dú)占的作業(yè)調(diào)度方法,所述方法包括如下步驟
Si,在每次作業(yè)調(diào)度運(yùn)行時(shí)獲取每個(gè)節(jié)點(diǎn)的可用內(nèi)存量;
S2,在作業(yè)提交時(shí)對該作業(yè)需要占用的內(nèi)存量進(jìn)行預(yù)測;
S3,根據(jù)作業(yè)提交的參數(shù)中指定的進(jìn)程數(shù),將預(yù)測的內(nèi)存量平均分配到每個(gè)進(jìn)程中;
S4,作業(yè)等待調(diào)度和運(yùn)行,調(diào)度時(shí)檢查各個(gè)節(jié)點(diǎn)的可用內(nèi)存量,并以此作為該節(jié)點(diǎn)能否運(yùn)行作業(yè)的依據(jù);
S5,作業(yè)調(diào)度成功后,根據(jù)S2和S3中獲得的信息,計(jì)算該作業(yè)在各個(gè)節(jié)點(diǎn)上占用的內(nèi)存量;
S6,根據(jù)S5中的信息更新節(jié)點(diǎn)的內(nèi)存可用量;
S7,根據(jù)設(shè)定的時(shí)間間隔,重復(fù)S2到S7。
優(yōu)選的,所述預(yù)測是根據(jù)該類作業(yè)之前的歷史統(tǒng)計(jì)值的最大值做出或根據(jù)作業(yè)的申請做出。
優(yōu)選的,所述進(jìn)程在節(jié)點(diǎn)上運(yùn)行時(shí),如果內(nèi)存不夠,則繼續(xù)向該節(jié)點(diǎn)申請。
優(yōu)選的,所述節(jié)點(diǎn)內(nèi)存如果不夠,則將該節(jié)點(diǎn)運(yùn)行的進(jìn)程轉(zhuǎn)移到其他節(jié)點(diǎn),或暫停該進(jìn)程,等待其他作業(yè)的資源釋放。
優(yōu)選的,所述進(jìn)程在完成后釋放占用的內(nèi)存。
本發(fā)明的優(yōu)點(diǎn)在于綜合作業(yè)的資源請求和節(jié)點(diǎn)的內(nèi)存信息來調(diào)度作業(yè),而不是僅根據(jù)作業(yè)的信息來預(yù)防節(jié)點(diǎn)內(nèi)存耗盡問題,達(dá)到控制節(jié)點(diǎn)內(nèi)存消耗的目的。
具體實(shí)施方式
本發(fā)明通過作業(yè)的內(nèi)存預(yù)測參數(shù)(以及進(jìn)程內(nèi)存預(yù)測參數(shù))和節(jié)點(diǎn)內(nèi)存配置信息來調(diào)度作業(yè)。
(1)首先,在作業(yè)調(diào)度運(yùn)行時(shí)獲取節(jié)點(diǎn)的總的可用內(nèi)存;
(2)其次,在作業(yè)提交時(shí)預(yù)測該作業(yè)需要占用的內(nèi)存量;預(yù)測可以根據(jù)之前該類作業(yè)的內(nèi)存申請量的最大值或在作業(yè)中申請的內(nèi)存量;
(3)再次,根據(jù)作業(yè)提交參數(shù)中指定的進(jìn)程數(shù),平均分配預(yù)測的內(nèi)存到每個(gè)進(jìn)程中;
(4)然后,等待作業(yè)調(diào)度調(diào)度和運(yùn)行作業(yè)。調(diào)度時(shí)檢查各節(jié)點(diǎn)的剩余可用內(nèi)存量, 并以此作為該節(jié)點(diǎn)能否運(yùn)行作業(yè)的依據(jù);
(5) 一旦作業(yè)成功調(diào)度,根據(jù)步驟(2)、(3)中獲取的信息,計(jì)算該作業(yè)在各個(gè)節(jié)點(diǎn)上占用的內(nèi)存量;當(dāng)進(jìn)程需要的內(nèi)存節(jié)點(diǎn)不滿足時(shí),可以將該進(jìn)程轉(zhuǎn)移到其他節(jié)點(diǎn)或等待其他作業(yè)釋放內(nèi)存;進(jìn)程工作完成后釋放內(nèi)存;
(6)根據(jù)(5)中的信息更新節(jié)點(diǎn)的內(nèi)存可用量;
(7)根據(jù)設(shè)定的時(shí)間間隔不斷重復(fù)步驟(2)到(7)。
權(quán)利要求
1.一種基于內(nèi)存獨(dú)占的作業(yè)調(diào)度方法,其特征在于所述方法包括如下步驟 Si,在每次作業(yè)調(diào)度運(yùn)行時(shí)獲取每個(gè)節(jié)點(diǎn)的可用內(nèi)存量;S2,在作業(yè)提交時(shí)對該作業(yè)需要占用的內(nèi)存量進(jìn)行預(yù)測;S3,根據(jù)作業(yè)提交的參數(shù)中指定的進(jìn)程數(shù),將預(yù)測的內(nèi)存量平均分配到每個(gè)進(jìn)程中; S4,作業(yè)等待調(diào)度和運(yùn)行,調(diào)度時(shí)檢查各個(gè)節(jié)點(diǎn)的可用內(nèi)存量,并以此作為該節(jié)點(diǎn)能否運(yùn)行作業(yè)的依據(jù);S5,作業(yè)調(diào)度成功后,根據(jù)S2和S3中獲得的信息,計(jì)算該作業(yè)在各個(gè)節(jié)點(diǎn)上占用的內(nèi)存量;S6,根據(jù)S5中的信息更新節(jié)點(diǎn)的內(nèi)存可用量; S7,根據(jù)設(shè)定的時(shí)間間隔,重復(fù)S2到S7。
2.如權(quán)利要求1所述的方法,其特征在于所述預(yù)測是根據(jù)該類作業(yè)之前的歷史統(tǒng)計(jì)值的最大值做出或根據(jù)作業(yè)的申請做出。
3.如權(quán)利要求1所述的方法,其特征在于所述進(jìn)程在節(jié)點(diǎn)上運(yùn)行時(shí),如果內(nèi)存不夠, 則繼續(xù)向該節(jié)點(diǎn)申請。
4.如權(quán)利要求3所述的方法,其特征在于所述節(jié)點(diǎn)內(nèi)存如果不夠,則將該節(jié)點(diǎn)運(yùn)行的進(jìn)程轉(zhuǎn)移到其他節(jié)點(diǎn),或暫停該進(jìn)程,等待其他作業(yè)的資源釋放。
5.如權(quán)利要求1所述的方法,其特征在于所述進(jìn)程在完成后釋放占用的內(nèi)存。
全文摘要
本發(fā)明提供了一種基于內(nèi)存獨(dú)占的作業(yè)調(diào)度方法,在每次作業(yè)調(diào)度運(yùn)行時(shí)獲取每個(gè)節(jié)點(diǎn)的可用內(nèi)存量;在作業(yè)提交時(shí)對該作業(yè)需要占用的內(nèi)存量進(jìn)行預(yù)測;根據(jù)作業(yè)提交的參數(shù)中指定的進(jìn)程數(shù),將預(yù)測的內(nèi)存量平均分配到每個(gè)進(jìn)程中;作業(yè)等待調(diào)度和運(yùn)行,調(diào)度時(shí)檢查各個(gè)節(jié)點(diǎn)的可用內(nèi)存量,并以此作為該節(jié)點(diǎn)能否運(yùn)行作業(yè)的依據(jù);作業(yè)調(diào)度成功后,根據(jù)S2和S3中獲得的信息,計(jì)算該作業(yè)在各個(gè)節(jié)點(diǎn)上占用的內(nèi)存量;根據(jù)S5中的信息更新節(jié)點(diǎn)的內(nèi)存可用量;根據(jù)設(shè)定的時(shí)間間隔,重復(fù)S2到S7。本發(fā)明的優(yōu)點(diǎn)在于綜合作業(yè)的資源請求和節(jié)點(diǎn)的內(nèi)存信息來調(diào)度作業(yè),而不是僅根據(jù)作業(yè)的信息來預(yù)防節(jié)點(diǎn)內(nèi)存耗盡問題,達(dá)到控制節(jié)點(diǎn)內(nèi)存消耗的目的。
文檔編號(hào)G06F9/46GK102521029SQ20111039736
公開日2012年6月27日 申請日期2011年12月2日 優(yōu)先權(quán)日2011年12月2日
發(fā)明者孫國忠, 張濤, 李媛, 梁曉湛, 溫鑫, 趙歡, 邵宗有 申請人:曙光信息產(chǎn)業(yè)(北京)有限公司