專利名稱:一種胖節(jié)點(diǎn)上的進(jìn)程控制方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體涉及一種胖節(jié)點(diǎn)上的進(jìn)程控制方法及裝置。
背景技術(shù):
目前工業(yè)和科研領(lǐng)域?qū)τ诖笠?guī)模計(jì)算的需求越來越多,而這樣的計(jì)算需求往往需 要在有大量CPU計(jì)算核心數(shù)、內(nèi)存資源、存儲(chǔ)空間,高速網(wǎng)絡(luò)通訊的計(jì)算節(jié)點(diǎn)上進(jìn)行,這也 就使得胖節(jié)點(diǎn)越來越多的被用戶們所使用,成為計(jì)算領(lǐng)域的主力軍。作為一個(gè)大規(guī)模的計(jì)算節(jié)點(diǎn),通常使用的是多用戶、多任務(wù)的Linux操作系統(tǒng)。由 于對(duì)運(yùn)算效率的要求,用戶都不希望程序使用到SWAP(交換)分區(qū),因此SWAP分區(qū)往往相 對(duì)系統(tǒng)的實(shí)際物理內(nèi)存較小。這也就使得在胖節(jié)點(diǎn)上很難進(jìn)行大規(guī)模的物理內(nèi)存與SWAP 之間的內(nèi)存交換,因此要求系統(tǒng)中運(yùn)行的進(jìn)程所需要的內(nèi)存容量要盡量保證在物理內(nèi)存大 小以內(nèi),一旦超過物理內(nèi)存實(shí)際大小,就很有可能導(dǎo)致整個(gè)系統(tǒng)的宕機(jī),使得該胖節(jié)點(diǎn)上正 在進(jìn)行的所有運(yùn)算都功虧一簣。而對(duì)于一個(gè)在胖節(jié)點(diǎn)上進(jìn)行運(yùn)算的用戶,一般很難對(duì)自己運(yùn)行的程序在計(jì)算的各 個(gè)不同階段所需要的實(shí)際內(nèi)存數(shù)量有非常準(zhǔn)確的估計(jì),同時(shí)也不方便時(shí)刻監(jiān)控自己的運(yùn)算 程序?qū)?nèi)存的使用情況。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是對(duì)于可供多個(gè)用戶使用、多個(gè)任務(wù)運(yùn)行的胖節(jié)點(diǎn),如 何有效避免由于運(yùn)行的程序?qū)?nèi)存的需求超過實(shí)際物理內(nèi)存,從而導(dǎo)致整個(gè)系統(tǒng)的宕機(jī)的 情況發(fā)生。為了解決上述問題,本發(fā)明提供了一種胖節(jié)點(diǎn)上的進(jìn)程控制方法,包括周期性獲取胖節(jié)點(diǎn)上內(nèi)存和交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小;判斷是否所述內(nèi)存中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的內(nèi)存閾值,并 且所述交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的分區(qū)閾值,得到判斷結(jié) 果;如果所述判斷結(jié)果為是,則根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選取出目標(biāo)進(jìn) 程;關(guān)閉所選取出的目標(biāo)進(jìn)程。進(jìn)一步地,所述根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選取出目標(biāo)進(jìn)程的步驟包 括在當(dāng)前運(yùn)行的進(jìn)程中提取出內(nèi)存使用率等于或大于0. 的普通用戶的進(jìn)程;在所提取出的進(jìn)程中,根據(jù)預(yù)定的策略選取出目標(biāo)進(jìn)程。進(jìn)一步地,所述預(yù)定的策略為選取當(dāng)前占用內(nèi)存或交換分區(qū)存儲(chǔ)空間最大的進(jìn)程。進(jìn)一步地,所述預(yù)定的策略為選取當(dāng)前CPU運(yùn)行時(shí)間最小的進(jìn)程。
進(jìn)一步地,所述預(yù)定的策略為根據(jù)作業(yè)提交的時(shí)間,選取最后一個(gè)提交作業(yè)的進(jìn)程。本發(fā)明還提供了一種胖節(jié)點(diǎn)上的進(jìn)程控制裝置,包括獲取模塊,用于周期性獲取胖節(jié)點(diǎn)上內(nèi)存和交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大判斷模塊,用于判斷是否所述內(nèi)存中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè) 的內(nèi)存閾值,并且所述交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的分區(qū)閾 值,得到判斷結(jié)果;選擇模塊,用于當(dāng)所述判斷結(jié)果為是時(shí),根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選 取出目標(biāo)進(jìn)程; 關(guān)閉模塊,用于關(guān)閉所選取出的目標(biāo)進(jìn)程。進(jìn)一步地,所述選擇模塊根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選取出目標(biāo)進(jìn)程是 指所述選擇模塊在當(dāng)前運(yùn)行的進(jìn)程中提取出內(nèi)存使用率等于或大于0. 的普通用 戶的進(jìn)程;在所提取出的進(jìn)程中,根據(jù)預(yù)定的策略選取出目標(biāo)進(jìn)程。進(jìn)一步地,所述預(yù)定的策略為選取當(dāng)前占用內(nèi)存或交換分區(qū)存儲(chǔ)空間最大的進(jìn)程。進(jìn)一步地,所述預(yù)定的策略為選取當(dāng)前CPU運(yùn)行時(shí)間最小的進(jìn)程。進(jìn)一步地,所述預(yù)定的策略為根據(jù)作業(yè)提交的時(shí)間,選取最后一個(gè)提交作業(yè)的進(jìn)程。本發(fā)明的技術(shù)方案能有效的對(duì)系統(tǒng)內(nèi)存資源進(jìn)行監(jiān)控和管理,以防止由于內(nèi)存使 用過量而導(dǎo)致胖節(jié)點(diǎn)宕機(jī),從而避免造成大量計(jì)算資源的浪費(fèi),減少用戶對(duì)系統(tǒng)資源使用 的復(fù)雜度,使系統(tǒng)更便捷、更穩(wěn)定、更高效的運(yùn)行,并且在SWAP分區(qū)釋放不及時(shí)的情況下, 也不會(huì)關(guān)閉進(jìn)程。本發(fā)明的一個(gè)優(yōu)化方案對(duì)進(jìn)程先進(jìn)行篩選,可以避免關(guān)閉諸如遠(yuǎn)程登錄 之類的進(jìn)程。本發(fā)明的另一個(gè)優(yōu)化方案能有效保證胖節(jié)點(diǎn)資源的合理、有效利用,并且可以 根據(jù)用戶的現(xiàn)實(shí)應(yīng)用情況進(jìn)行多種控制策略調(diào)整,在資源最大化利用的同時(shí)減少了用戶對(duì) 系統(tǒng)資源使用的復(fù)雜度,使系統(tǒng)更便捷、更穩(wěn)定、更高效的運(yùn)行。
圖1為實(shí)施例一的例子的閉環(huán)控制模型;圖2為實(shí)施例二的胖節(jié)點(diǎn)上的進(jìn)程控制裝置的示意框圖。
具體實(shí)施例方式下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說明。需要說明的是,如果不沖突,本發(fā)明實(shí)施例以及實(shí)施例中的各個(gè)特征可以相互結(jié) 合,均在本發(fā)明的保護(hù)范圍之內(nèi)。另外,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī) 可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況 下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。實(shí)施例一、一種胖節(jié)點(diǎn)上的進(jìn)程控制方法,包括
周期性獲取胖節(jié)點(diǎn)上內(nèi)存和交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大??;判斷是否所述內(nèi)存中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的內(nèi)存閾值,并 且所述交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的分區(qū)閾值,得到判斷結(jié) 果;如果所述判斷結(jié)果為是,則根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選取出目標(biāo)進(jìn) 程;關(guān)閉所選取出的目標(biāo)進(jìn)程。本實(shí)施例中,所述內(nèi)存閾值和分區(qū)閾值可分別根據(jù)胖節(jié)點(diǎn)的物理內(nèi)存和交換分區(qū) 的大小自行設(shè)置,比如但不限于取為總存儲(chǔ)空間的90%等;所獲取的當(dāng)前使用的存儲(chǔ)空間 的大小可以是具體的容量值,也可以是占總存儲(chǔ)空間的比例,所述內(nèi)存/分區(qū)閾值也相應(yīng) 為容量值或比例。本實(shí)施例中,獲取胖節(jié)點(diǎn)上內(nèi)存和交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小的周期 可以根據(jù)需要和系統(tǒng)性能自行設(shè)置。本實(shí)施例中,如果內(nèi)存/交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小未達(dá)到內(nèi)存/分 區(qū)閾值,則保持當(dāng)前系統(tǒng)進(jìn)程使用狀態(tài)。本實(shí)施例中,設(shè)置兩個(gè)閾值是為了避免在一些情況下誤關(guān)進(jìn)程,這是針對(duì)胖節(jié)點(diǎn) 的結(jié)構(gòu)特點(diǎn)設(shè)計(jì)的。胖節(jié)點(diǎn)為一類具有較大量的CPU計(jì)算核心數(shù)、內(nèi)存資源、存儲(chǔ)空間,高 速的網(wǎng)絡(luò)通訊,但相對(duì)較少的本地硬盤空間的計(jì)算服務(wù)器節(jié)點(diǎn),其上的交換分區(qū)相對(duì)于內(nèi) 存的數(shù)量較少;胖節(jié)點(diǎn)中,當(dāng)內(nèi)存被占滿后,開始應(yīng)用交換分區(qū)中的存儲(chǔ)空間;當(dāng)一些程序 運(yùn)行完后,內(nèi)存中的存儲(chǔ)空間將被釋放,但交換分區(qū)中的存儲(chǔ)空間不會(huì)立即被釋放,如果僅 僅設(shè)置分區(qū)閾值,則有可能出現(xiàn)明明內(nèi)存中有存儲(chǔ)空間,卻關(guān)閉進(jìn)程的問題;而且胖節(jié)點(diǎn)中 內(nèi)存一般大于交換分區(qū),對(duì)內(nèi)存和交換分區(qū)分別設(shè)置閾值,并且當(dāng)內(nèi)存和交換分區(qū)當(dāng)前使 用的存儲(chǔ)空間大小都達(dá)到或超過閾值時(shí)才關(guān)閉進(jìn)程,就可以避免存儲(chǔ)空間使用不充分的情 況出現(xiàn)。本實(shí)施例當(dāng)內(nèi)存使用率超過了設(shè)定的閾值時(shí)便通過進(jìn)程控制的方式將使用的內(nèi) 存控制在閾值范圍之內(nèi),由于是周期性進(jìn)行,因此在對(duì)系統(tǒng)進(jìn)程進(jìn)行調(diào)整后還會(huì)繼續(xù)采集 內(nèi)存及交換分區(qū)使用情況,并與閾值進(jìn)行比較,從而可形成一個(gè)閉環(huán)控制系統(tǒng),使整個(gè)系統(tǒng) 控制在穩(wěn)定的平衡狀態(tài);本實(shí)施例能有效控制胖節(jié)點(diǎn)內(nèi)存資源使用,可以在防止由于內(nèi)存 使用過量而導(dǎo)致胖節(jié)點(diǎn)宕機(jī)的同時(shí),避免造成大量計(jì)算資源的浪費(fèi)。本實(shí)施例中,所述預(yù)定的策略可以但不限于為以下三種中的任一種(一 )選取當(dāng)前占用內(nèi)存或交換分區(qū)存儲(chǔ)空間最大的進(jìn)程;( 二)選取當(dāng)前CPU運(yùn)行時(shí)間最小的進(jìn)程(即使用CPU計(jì)算資源最少的進(jìn)程);(三)根據(jù)作業(yè)提交的時(shí)間,選取最后一個(gè)提交作業(yè)的進(jìn)程。實(shí)際應(yīng)用時(shí)還可以是其它策略,在使用中可以改變策略,還可以設(shè)定策略的優(yōu)先 級(jí),比如當(dāng)有兩個(gè)或以上的進(jìn)程占用的存儲(chǔ)空間一樣大且比其它進(jìn)程都大時(shí),則選取當(dāng)前 CPU運(yùn)行時(shí)間最小的一個(gè)進(jìn)程。本實(shí)施例中,所述根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選取出目標(biāo)進(jìn)程的步驟具 體可以包括在當(dāng)前運(yùn)行的進(jìn)程中提取出內(nèi)存使用率等于或大于0. 的普通用戶的進(jìn)程;
在所提取出的進(jìn)程中,根據(jù)預(yù)定的策略選取出目標(biāo)進(jìn)程。先提取出內(nèi)存使用率等于或大于0. 的普通用戶的進(jìn)程,再選取目標(biāo)進(jìn)程,可以 避免將遠(yuǎn)程連接的用戶的進(jìn)程關(guān)閉。本實(shí)施例中,可以但不限于使用利用Linux系統(tǒng)命令ps進(jìn)行提?。惶崛r(shí)還可以 提取出進(jìn)程的以下信息進(jìn)程的ID號(hào)、用戶、CPU使用率、內(nèi)存使用率、實(shí)際運(yùn)行時(shí)間、CPU運(yùn)行時(shí)間、進(jìn)程狀 態(tài)、執(zhí)行命令等。本實(shí)施例中,關(guān)閉所選取出的目標(biāo)進(jìn)程的步驟后,還可以輸出日志文件信息,告訴 相應(yīng)的用戶其運(yùn)行的作業(yè)被停止,以及停止的時(shí)間,停止的進(jìn)程和進(jìn)程相關(guān)的信息。本實(shí)施例的方法可以但不限于以Shell腳本的形式實(shí)現(xiàn),可以但不限于通過添加 系統(tǒng)的計(jì)劃任務(wù)的方式使該Siell腳本定期執(zhí)行,比如可以使用Linux系統(tǒng)自帶的crontab 計(jì)劃任務(wù)工具,從而形成一個(gè)對(duì)內(nèi)存資源使用控制的閉環(huán)系統(tǒng)。下面用一個(gè)例子具體進(jìn)行說明;該例子是本實(shí)施例的一種具體實(shí)現(xiàn)方案,本實(shí)施 例的實(shí)現(xiàn)細(xì)節(jié)并不限于該例子。如圖1中所示,通過Linux系統(tǒng)自帶的crontab計(jì)劃任務(wù)工具進(jìn)行內(nèi)存監(jiān)控,定時(shí) 采集系統(tǒng)的內(nèi)存資源使用情況,并與設(shè)定的閾值進(jìn)行比較,按照比較結(jié)果進(jìn)行進(jìn)程控制。本例子中,通過下面命令獲取系統(tǒng)當(dāng)前內(nèi)存使用信息,usedmem = ~ free |awk' $1 〃 -/+〃 {print$3} ‘ ~usedswap = ~free|awk' $1 〃 Swap “ {print$3}‘“通過下面命令獲取系統(tǒng)當(dāng)前進(jìn)程信息,ps -eo user, pid, pcpu, pmem, stat, start_time, cputime, etime, args|awk' ($1! =〃 root" &&$1 ! =〃 USER" &&$4 > 0. 0) {print$0}'對(duì)獲取到的start_time,cputime, etime需要進(jìn)行時(shí)間轉(zhuǎn)換成以秒為單位,通過 以下函數(shù)來實(shí)現(xiàn),function timetos{time = $1dayflag = "echo" $time〃{print NF}'、if [" $dayflag" _eq 2] ;thendaytos = "echo" $time〃 l^wk—F—' {print$l*24*3600}tmptime = —echo" $time〃 awk-F-' {print$2}'、elsedaytos = 0tmptime = —echo" $time〃 awk-F-' {print$l}'、fitimeflag = "echo" $tmptime〃 awk-F ' {print NF}'、if[" $timeflag" _eq 3] ;thenhtos = "echo" $tmptime〃 |: ' {print$l*3600}'、mtos = "echo" $tmptime〃 awk-F ' {print$2*60}'、
stos = ‘echo“ $tmptime“ |awk_F ‘ {print$3}
elif[“ $timeflag"_eq 2] ;then htos = 0
mtos = "echo" $tmptime〃 awk-F ' {print$l*60}
stos =、echo" $tmptime" | awk_F :' {print$2}'firesult = $ ((10#$daytos+10#$htos+10#$mtos+10#$stos))echo" $result〃}通過下面命令停止目標(biāo)進(jìn)程,kill-9" $pidl〃將該腳本freemem. sh添加進(jìn)計(jì)劃任務(wù),使該腳本定時(shí)執(zhí)行內(nèi)存使用情況檢測,crontab-e0-59****sh/var/log/freemem/freemem. sh 3# 采取第三種策略,每分鐘檢測一次定期檢查日志文件,如有被停止的進(jìn)程則會(huì)以日志形式通知該用戶,日志文件中 輸出如下,Wed Apr 14 20:24:01 AST 2010# (停掉該進(jìn)程的時(shí)間)Kill the process by the option 3, please tell the user liujc !liujc 22457 99.993.5 R 09:17 11:05:35 11:06:05 velveth_de 本例子可看成是一個(gè)閉環(huán)控制系統(tǒng),輸入是設(shè)定的閾值與進(jìn)程對(duì)內(nèi)存及交換分區(qū) 資源占用的變化,輸出是系統(tǒng)實(shí)際使用的內(nèi)存及交換分區(qū)的大小,反饋是對(duì)閉環(huán)控制系統(tǒng) 內(nèi)存及交換分區(qū)使用情況的數(shù)據(jù)采集與轉(zhuǎn)換,保證閉環(huán)控制系統(tǒng)的輸出穩(wěn)定在閾值范圍之實(shí)施例二,一種胖節(jié)點(diǎn)上的進(jìn)程控制裝置,如圖2所示,包括獲取模塊,用于周期性獲取胖節(jié)點(diǎn)上內(nèi)存和交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大判斷模塊,用于判斷是否所述內(nèi)存中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè) 的內(nèi)存閾值,并且所述交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的分區(qū)閾 值,得到判斷結(jié)果;選擇模塊,用于當(dāng)所述判斷結(jié)果為是時(shí),根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選 取出目標(biāo)進(jìn)程;關(guān)閉模塊,用于關(guān)閉所選取出的目標(biāo)進(jìn)程。本實(shí)施例中,所述選擇模塊根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選取出目標(biāo)進(jìn)程 具體可以是指所述選擇模塊在當(dāng)前運(yùn)行的進(jìn)程中提取出內(nèi)存使用率等于或大于0. 的普通用 戶的進(jìn)程;在所提取出的進(jìn)程中,根據(jù)預(yù)定的策略選取出目標(biāo)進(jìn)程。本實(shí)施例中,所述預(yù)定的策略可以但不限于為以下三種中的一種(一)選取當(dāng)前占用內(nèi)存或交換分區(qū)存儲(chǔ)空間最大的進(jìn)程;( 二)選取當(dāng)前CPU運(yùn)行時(shí)間最小的進(jìn)程(即使用CPU計(jì)算資源最少的進(jìn)程);
(三)根據(jù)作業(yè)提交的時(shí)間,選取最后一個(gè)提交作業(yè)的進(jìn)程。其它實(shí)現(xiàn)細(xì)節(jié)可以參見實(shí)施例一。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令 相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤 等。可選地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來實(shí)現(xiàn)。相應(yīng) 地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的 形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟 悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變 形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種胖節(jié)點(diǎn)上的進(jìn)程控制方法,包括周期性獲取胖節(jié)點(diǎn)上內(nèi)存和交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大??; 判斷是否所述內(nèi)存中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的內(nèi)存閾值,并且所 述交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的分區(qū)閾值,得到判斷結(jié)果; 如果所述判斷結(jié)果為是,則根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選取出目標(biāo)進(jìn)程; 關(guān)閉所選取出的目標(biāo)進(jìn)程。
2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中 選取出目標(biāo)進(jìn)程的步驟包括在當(dāng)前運(yùn)行的進(jìn)程中提取出內(nèi)存使用率等于或大于0. 的普通用戶的進(jìn)程; 在所提取出的進(jìn)程中,根據(jù)預(yù)定的策略選取出目標(biāo)進(jìn)程。
3.如權(quán)利要求1或2所述的方法,其特征在于所述預(yù)定的策略為選取當(dāng)前占用內(nèi)存或交換分區(qū)存儲(chǔ)空間最大的進(jìn)程。
4.如權(quán)利要求1或2所述的方法,其特征在于 所述預(yù)定的策略為選取當(dāng)前CPU運(yùn)行時(shí)間最小的進(jìn)程。
5.如權(quán)利要求1或2所述的方法,其特征在于所述預(yù)定的策略為根據(jù)作業(yè)提交的時(shí)間,選取最后一個(gè)提交作業(yè)的進(jìn)程。
6.一種胖節(jié)點(diǎn)上的進(jìn)程控制裝置,其特征在于,包括獲取模塊,用于周期性獲取胖節(jié)點(diǎn)上內(nèi)存和交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大??; 判斷模塊,用于判斷是否所述內(nèi)存中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的內(nèi) 存閾值,并且所述交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的分區(qū)閾值,得 到判斷結(jié)果;選擇模塊,用于當(dāng)所述判斷結(jié)果為是時(shí),根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選取出 目標(biāo)進(jìn)程;關(guān)閉模塊,用于關(guān)閉所選取出的目標(biāo)進(jìn)程。
7.如權(quán)利要求6所述的裝置,其特征在于,所述選擇模塊根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行 的進(jìn)程中選取出目標(biāo)進(jìn)程是指所述選擇模塊在當(dāng)前運(yùn)行的進(jìn)程中提取出內(nèi)存使用率等于或大于0. 的普通用戶的 進(jìn)程;在所提取出的進(jìn)程中,根據(jù)預(yù)定的策略選取出目標(biāo)進(jìn)程。
8.如權(quán)利要求6或7所述的裝置,其特征在于所述預(yù)定的策略為選取當(dāng)前占用內(nèi)存或交換分區(qū)存儲(chǔ)空間最大的進(jìn)程。
9.如權(quán)利要求6或7所述的裝置,其特征在于 所述預(yù)定的策略為選取當(dāng)前CPU運(yùn)行時(shí)間最小的進(jìn)程。
10.如權(quán)利要求6或7所述的裝置,其特征在于所述預(yù)定的策略為根據(jù)作業(yè)提交的時(shí)間,選取最后一個(gè)提交作業(yè)的進(jìn)程。
全文摘要
本發(fā)明公開了一種胖節(jié)點(diǎn)上的進(jìn)程控制方法及裝置;所述方法包括周期性獲取胖節(jié)點(diǎn)上內(nèi)存和交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小;判斷是否所述內(nèi)存中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的內(nèi)存閾值,并且所述交換分區(qū)中當(dāng)前使用的存儲(chǔ)空間的大小達(dá)到或超過預(yù)設(shè)的分區(qū)閾值,得到判斷結(jié)果;如果所述判斷結(jié)果為是,則根據(jù)預(yù)定的策略在當(dāng)前運(yùn)行的進(jìn)程中選取出目標(biāo)進(jìn)程;關(guān)閉所選取出的目標(biāo)進(jìn)程。本發(fā)明對(duì)于可供多個(gè)用戶使用、多個(gè)任務(wù)運(yùn)行的胖節(jié)點(diǎn),可有效避免由于運(yùn)行的程序?qū)?nèi)存的需求超過實(shí)際物理內(nèi)存,從而導(dǎo)致整個(gè)系統(tǒng)的宕機(jī)的情況發(fā)生。
文檔編號(hào)G06F9/50GK102141934SQ20111004770
公開日2011年8月3日 申請(qǐng)日期2011年2月28日 優(yōu)先權(quán)日2011年2月28日
發(fā)明者徐斌 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司