本發(fā)明涉及計算機領域,特別是涉及一種系統(tǒng)進程監(jiān)控方法及計算設備。
背景技術:
系統(tǒng)進程運行過程中,其運行相關參數(shù),例如cpu使用率,實時變化。當某一進程高速運行時,容易導致系統(tǒng)總的cpu使用率過高,從而造成其他進程運行緩慢或者系統(tǒng)超負載的情況。
本發(fā)明的發(fā)明人在長期的研究中發(fā)現(xiàn),現(xiàn)有技術中采用監(jiān)控進程對系統(tǒng)進程的運行相關參數(shù)進行監(jiān)控,在某一進程的運行相關參數(shù)過高時,例如cpu使用率過高時,提醒用戶,由用戶手動處理,靈活性不高。
技術實現(xiàn)要素:
本發(fā)明主要解決的技術問題是提供一種系統(tǒng)進程監(jiān)控方法及計算設備,能夠解決現(xiàn)有技術中需要用戶手動處理進程的問題。
為解決上述技術問題,本發(fā)明采用的一個技術方案是:提供一種系統(tǒng)進程監(jiān)控方法,包括:利用操作系統(tǒng)自身進程獲取被監(jiān)控的進程的身份標識及其運行相關參數(shù);判斷運行相關參數(shù)是否超過預先設置的閾值;若超過預先設置的閾值,則對超過預先設置的閾值的被監(jiān)控的進程和/或操作系統(tǒng)的其他進程進行處理。
為解決上述技術問題,本發(fā)明采用的另一個技術方案是:提供一種計算設備,包括:相互連接的處理器和存儲器,處理器用于利用操作系統(tǒng)自身進程獲取被監(jiān)控的進程的身份標識及其運行相關參數(shù),判斷運行相關參數(shù)是否超過預先設置的閾值,在超過預先設置的閾值時,對超過預先設置的閾值的被監(jiān)控的進程和/或操作系統(tǒng)的其他進程進行處理;存儲器用于存儲被監(jiān)控的進程的身份標識及其運行相關參數(shù)。
本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術的情況,本發(fā)明的實施例利用操作系統(tǒng)自身進程獲取被監(jiān)控的進程的身份標識及其運行相關參數(shù),判斷運行相關參數(shù)是否超過預先設置的閾值,在超過預先設置的閾值時,對超過預先設置的閾值的被監(jiān)控的進程和/或操作系統(tǒng)的其他進程進行處理,從而利用操作系統(tǒng)自身進程自動監(jiān)控并處理被監(jiān)控的進程和/或操作系統(tǒng)的其他進程,不需要用戶手動處理,提高監(jiān)控靈活性。
附圖說明
圖1是本發(fā)明系統(tǒng)進程監(jiān)控方法第一實施方式的流程示意圖;
圖2是本發(fā)明系統(tǒng)進程監(jiān)控方法第二實施方式的流程示意圖;
圖3是本發(fā)明系統(tǒng)進程監(jiān)控方法第三實施方式的流程示意圖;
圖4是本發(fā)明計算設備一實施方式的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,圖1是本發(fā)明系統(tǒng)進程監(jiān)控方法第一實施方式的流程示意圖。如圖1所示,本發(fā)明快速查看通知的方法包括:
步驟s10:利用操作系統(tǒng)自身進程獲取被監(jiān)控的進程的身份標識及其運行相關參數(shù);
其中,運行相關參數(shù)包括被監(jiān)控的進程的cpu使用率、內存使用率以及優(yōu)先級中的至少一個,被監(jiān)控的進程包括系統(tǒng)所有運行的進程、所有休眠的進程中的至少一個。
進一步地,步驟s10包括:
步驟s101:從來自被監(jiān)控的進程的使用率信號中獲取被監(jiān)控的進程的身份標識。
其中,pid就是各進程的身份標識,進程開始運行時,系統(tǒng)就會自動給進程分配一個唯一的pid,進程中止后pid被系統(tǒng)回收,可能會被繼續(xù)分配給新運行的進程;使用率信號是被監(jiān)控的進程運行過程中相關參數(shù)值變化的信號,該使用率信號中至少包括被監(jiān)控的進程的身份標識及其運行相關參數(shù),可以是由操作系統(tǒng)自身進程主動獲取,也可以是由被監(jiān)控的進程主動上報,此處不做具體限定。
具體地,在一個應用例中,被監(jiān)控的進程運行于linux操作系統(tǒng),該操作系統(tǒng)自身進程是在操作系統(tǒng)內核中運行的監(jiān)控進程。該linux操作系統(tǒng)的內核中增加自定義的監(jiān)控程序,該監(jiān)控程序運行時即產(chǎn)生該監(jiān)控進程,并且該操作系統(tǒng)中還自定義和/或修改內核程序、殼shell程序和庫函數(shù),以使得該監(jiān)控進程運行時,可以調用相應的檢測、處理的shell程序和庫函數(shù),從而實現(xiàn)對被監(jiān)控的進程進行實時監(jiān)控和處理。
操作系統(tǒng)啟動后,加載任務列表,執(zhí)行任務列表中的任務,該操作系統(tǒng)監(jiān)控進程實時監(jiān)控系統(tǒng)中所有運行的進程和所有休眠的進程,當被監(jiān)控的進程開始運行時,獲取所有被監(jiān)控的進程的身份標識(即pid)以及其運行相關參數(shù),例如cpu使用率、內存使用率及初始優(yōu)先級,并將獲取的參數(shù)保存;其中,被監(jiān)控的進程運行過程中,被監(jiān)控的進程的cpu使用率、內存使用率等運行相關參數(shù)實時變化,該監(jiān)控進程實時監(jiān)控被監(jiān)控的進程運行相關參數(shù),從來自被監(jiān)控的進程的使用率信號中獲取被監(jiān)控的進程的身份標識及其運行相關參數(shù)。
當然,在其他實施例中,被監(jiān)控的進程可以是部分特定的進程,也可以運行在其他操作系統(tǒng)中,此處不做具體限定。
進一步地,步驟s10之前包括:
步驟s00:利用操作系統(tǒng)自身進程對被監(jiān)控的進程進行身份驗證;
步驟s01:若驗證通過,則執(zhí)行步驟s10;
步驟s02:若驗證不通過,則屏蔽被監(jiān)控的進程,以使被監(jiān)控的進程無法訪問系統(tǒng)。
具體地,在上述應用例中,操作系統(tǒng)自身進程在被監(jiān)控的進程嘗試訪問系統(tǒng)時,對該被監(jiān)控的進程進行身份驗證,判斷該被監(jiān)控的進程是否具有訪問權限,若驗證通過,則繼續(xù)執(zhí)行步驟s10,若驗證不通過,則表明該被監(jiān)控的進程不具有訪問權限,屏蔽該被監(jiān)控的進程,以使該被監(jiān)控的進程無法訪問系統(tǒng)。
例如,操作系統(tǒng)自身進程獲取嘗試訪問系統(tǒng)的被監(jiān)控的進程的身份標識,判斷該身份標識是否在系統(tǒng)保存的進程列表中,其中該進程列表包括具有訪問權限的所有進程,若該被監(jiān)控的進程的身份標識在該進程列表中,則驗證通過,繼續(xù)執(zhí)行步驟s10;若該被監(jiān)控的進程的身份標識不在該進程列表中,則驗證不通過,屏蔽該被監(jiān)控的進程,以使該被監(jiān)控的進程無法訪問系統(tǒng),從而防止不具有訪問權限的非法程序訪問系統(tǒng),提高系統(tǒng)的安全性。
當然,在其他應用例中,操作系統(tǒng)自身進程還可以采用驗證數(shù)字證書等其他方式對被監(jiān)控的進程進行身份驗證,此處不做具體限定。
步驟s11:判斷運行相關參數(shù)是否超過預先設置的閾值;
其中,該預先設置的閾值是該操作系統(tǒng)監(jiān)控進程預先設置的被監(jiān)控的進程運行相關參數(shù)的限制值,例如cpu使用率的最大限制值,不同的進程可以設置不同的閾值,且此處的閾值可以指一個范圍,此處不做具體限定。
步驟s12:若超過預先設置的閾值,則對超過預先設置的閾值的被監(jiān)控的進程和/或操作系統(tǒng)的其他進程進行處理。
具體地,在上述應用例中,該監(jiān)控進程獲取被監(jiān)控的進程的運行相關參數(shù),判斷各運行相關參數(shù)是否超過預先設置的閾值,并對超過預先設置的閾值的被監(jiān)控的進程進行處理。例如,該監(jiān)控進程獲取某一被監(jiān)控的進程的cpu使用率,判斷該cpu使用率是否超過預先設置的閾值,例如50%,若超過,則對被監(jiān)控的進程進行處理,例如屏蔽該被監(jiān)控的進程1至2秒,以使得該被監(jiān)控的進程cpu使用率降低,從而使得系統(tǒng)總的cpu使用率下降,避免由于cpu使用率過高而導致的運行卡頓或錯誤,提高系統(tǒng)穩(wěn)定性。
當然,在其他實施例中,該監(jiān)控進程也可以降低超過預先設置的閾值的被監(jiān)控的進程的優(yōu)先級,或者同時對操作系統(tǒng)的其他進程進行處理,或者對操作系統(tǒng)的其他進程進行處理,例如調整其他進程的優(yōu)先級等以減輕或克服運行卡頓或錯誤問題,提高系統(tǒng)穩(wěn)定性,此處不做具體限定。
本實施方式中,利用操作系統(tǒng)自身進程獲取被監(jiān)控的進程的身份標識及其運行相關參數(shù),判斷運行相關參數(shù)是否超過預先設置的閾值,在超過預先設置的閾值時,對超過預先設置的閾值的被監(jiān)控的進程和/或操作系統(tǒng)的其他進程進行處理,從而實現(xiàn)自動監(jiān)控并處理被監(jiān)控的進程和/或操作系統(tǒng)的其他進程,不需要用戶手動處理,提高監(jiān)控靈活性。
請參閱圖2,圖2是本發(fā)明系統(tǒng)進程監(jiān)控方法第二實施方式的流程示意圖,是本發(fā)明系統(tǒng)進程監(jiān)控方法第一實施方式步驟s12的具體步驟,包括:
步驟s121:降低超過預先設置的閾值的被監(jiān)控的進程的優(yōu)先級;
其中,進程開始運行時,操作系統(tǒng)會給該進程分配一個初始優(yōu)先級,該進程的優(yōu)先級決定該進程的運行速度和所占有的系統(tǒng)資源,優(yōu)先級的具體等級設置可以根據(jù)不同進程設置,此處不做具體限定。
具體地,在一個應用例中,該操作系統(tǒng)自身進程,即操作系統(tǒng)內核中運行的監(jiān)控進程,實時監(jiān)控被監(jiān)控的進程的運行相關參數(shù),在該運行相關參數(shù)超過預先設置的閾值時,降低超過預先設置的閾值的被監(jiān)控的進程的優(yōu)先級。例如,該監(jiān)控進程獲取某一被監(jiān)控的進程的內存使用率,判斷該內存使用率是否超過預先設置的閾值,例如50%,若超過,則降低該進程的優(yōu)先級,以使得該被監(jiān)控的進程從高速運行狀態(tài)變?yōu)楹笈_緩慢運行狀態(tài),從而使得系統(tǒng)總的內存使用率下降,避免由于內存使用率過高而導致的運行卡頓或錯誤,提高系統(tǒng)穩(wěn)定性。
當然,在其他實施方式中,該監(jiān)控進程也可以通過向用戶發(fā)送提醒消息,提醒用戶該被監(jiān)控的進程運行相關參數(shù)超過預先設置的閾值,建議用戶關閉相關進程,當用戶在預定時間內或者提醒次數(shù)超過預設次數(shù)時,仍然沒有關閉相關進程時,自動降低該被監(jiān)控的進程的優(yōu)先級或在預定時間后直接關閉進程。
進一步地,步驟s121之后包括:
步驟s122:清理超過預先設置的閾值的被監(jiān)控的進程占用的系統(tǒng)緩存;
具體地,在上述應用例中,降低該被監(jiān)控的進程的優(yōu)先級后,該監(jiān)控進程還可以清理該被監(jiān)控的進程占用的系統(tǒng)緩存,以使得其他進程可以使用更多緩存空間,提高資源利用率,減少資源浪費,提高系統(tǒng)運行效率。
步驟s123:減少超過預先設置的閾值的被監(jiān)控的進程占用的內存和cpu資源,以使超過預先設置的閾值的被監(jiān)控的進程保持后臺運行。
具體地,上述應用例中,該監(jiān)控進程還可以進一步減少該被監(jiān)控的進程占用的內存和cpu資源,從而使得該被監(jiān)控的進程保持后臺運行,進一步提高資源利用率。當然,在其他應用例中,該監(jiān)控進程也可以重新分配該監(jiān)控的進程占用的內存空間和cpu使用率的最大限制值等,此處不做具體限定。
本實施方式是本發(fā)明系統(tǒng)進程監(jiān)控方法第一實施方式中步驟s12的具體步驟,本實施方式可以與本發(fā)明系統(tǒng)進程監(jiān)控方法第一實施方式相結合。
請參閱圖3,圖3是本發(fā)明系統(tǒng)進程監(jiān)控方法第三實施方式的流程示意圖,是在本發(fā)明系統(tǒng)進程監(jiān)控方法第一實施方式的基礎上,進一步包括:
步驟s21:判斷是否接收到被監(jiān)控的進程的退出信號;
其中,在進程異常退出時,該進程會向操作系統(tǒng)發(fā)送一個退出信號,例如0,以通知操作系統(tǒng)進行相關處理。
步驟s22:若接收到被監(jiān)控的進程的退出信號,則重新啟動被監(jiān)控的進程。
其中,步驟s22進一步包括:
步驟s221:從被監(jiān)控的進程的退出信號中獲取被監(jiān)控的進程的身份標識;
步驟s222:重新啟動該身份標識對應的被監(jiān)控的進程。
具體的,被監(jiān)控的進程異常退出時,其向操作系統(tǒng)發(fā)送一個退出信號,該退出信號中包括該被監(jiān)控的進程的身份標識,該操作系統(tǒng)自身的進程,即操作系統(tǒng)內核中運行的監(jiān)控進程,從該退出信號中獲取該被監(jiān)控的進程的身份標識,為了保證被監(jiān)控的進程保持運行狀態(tài),該監(jiān)控進程向該被監(jiān)控的進程發(fā)送重啟信號,例如1,以重新啟動該身份標識對應的被監(jiān)控的進程。
其中,步驟s222進一步包括:
步驟s2221:獲取重新啟動配置文件中記錄的該身份標識對應的控制腳本名稱;
步驟s2222:執(zhí)行控制腳本名稱對應的控制腳本,以重新啟動該身份標識對應的被監(jiān)控的進程。
具體地,在一個應用例中,操作系統(tǒng)內存中保存有各進程的重新啟動配置文件,該操作系統(tǒng)自身進程,即操作系統(tǒng)內核中運行的監(jiān)控進程,需要重新啟動某一被監(jiān)控的進程時,該監(jiān)控進程從內存中的重新啟動配置文件中獲取該被監(jiān)控的進程的身份標識對應的控制腳本名稱,執(zhí)行該控制腳本名稱對應的控制腳本,以重新啟動該被監(jiān)控的進程,從而保證被監(jiān)控的進程持續(xù)運行,提高系統(tǒng)穩(wěn)定性。
本實施方式的步驟的執(zhí)行可以在本發(fā)明系統(tǒng)進程監(jiān)控方法第一或第二實施方式中任意一個步驟之前/后,本實施方式可以與本發(fā)明系統(tǒng)進程監(jiān)控方法第一和/或第二實施方式向結合。
請參閱圖4,圖4是本發(fā)明計算設備一實施方式的結構示意圖。如圖4所示,本發(fā)明計算設備40包括:相互連接的處理器401和存儲器402;
在一個應用例中,該計算設備40是服務器,該服務器可以是云端服務器,其具有多個客戶端接口,接收多個用戶客戶端的訪問。
處理器401用于利用操作系統(tǒng)自身進程獲取被監(jiān)控的進程的身份標識及其運行相關參數(shù),判斷運行相關參數(shù)是否超過預先設置的閾值,在超過預先設置的閾值時,對超過預先設置的閾值的被監(jiān)控的進程和/或操作系統(tǒng)的其他進程進行處理。
存儲器402用于存儲被監(jiān)控的進程的身份標識及其運行相關參數(shù)。
其中,該操作系統(tǒng)自身進程是服務器40的操作系統(tǒng)內核中運行的監(jiān)控進程,運行相關參數(shù)包括被監(jiān)控的進程的cpu使用率、內存使用率以及優(yōu)先級中的至少一個,該預先設置的閾值可以根據(jù)不同進程具體設置,且此處的閾值可以指一個范圍,此處不做具體限定。
具體地,在一個應用例中,被監(jiān)控的進程運行于linux操作系統(tǒng)。該linux操作系統(tǒng)的內核中增加自定義的監(jiān)控程序,該監(jiān)控程序運行時即產(chǎn)生該監(jiān)控進程,并且該操作系統(tǒng)中還自定義和/或修改內核程序、殼shell程序和庫函數(shù),以使得該監(jiān)控進程運行時,可以調用相應的檢測、處理的shell程序和庫函數(shù),從而實現(xiàn)對被監(jiān)控的進程進行實時監(jiān)控和處理。
操作系統(tǒng)啟動后,加載任務列表,執(zhí)行任務列表中的任務,處理器401利用該操作系統(tǒng)監(jiān)控進程實時監(jiān)控系統(tǒng)中所有運行的進程和所有休眠的進程,當被監(jiān)控的進程開始運行時,獲取所有被監(jiān)控的進程的身份標識(即pid)以及其運行相關參數(shù),例如cpu使用率、內存使用率及初始優(yōu)先級,并將獲取的參數(shù)保存;當然,在其他應用例中,被監(jiān)控的進程可以是部分特定的進程,也可以運行在其他操作系統(tǒng)中,此處不做具體限定。
其中,被監(jiān)控的進程運行過程中,被監(jiān)控的進程的cpu使用率、內存使用率等運行相關參數(shù)實時變化,處理器401利用該監(jiān)控進程實時監(jiān)控被監(jiān)控的進程運行相關參數(shù),在該運行相關參數(shù)超過預先設置的閾值時,對超過預先設置的閾值的被監(jiān)控的進程進行處理。
例如,處理器401利用該監(jiān)控進程獲取某一被監(jiān)控的進程的cpu使用率,判斷該cpu使用率是否超過預先設置的閾值,例如30%,若超過,則降低該進程的優(yōu)先級,以使得該被監(jiān)控的進程從高速運行狀態(tài)變?yōu)楹笈_緩慢運行狀態(tài),從而使得系統(tǒng)總的cpu使用率下降,避免由于cpu使用率過高而導致的運行卡頓或錯誤,提高計算設備40的穩(wěn)定性。
當然,在其他應用例中,處理器401也可以利用該監(jiān)控進程通過客戶端接口向用戶發(fā)送提醒消息,提醒用戶該被監(jiān)控的進程運行相關參數(shù)超過預先設置的閾值,建議用戶關閉相關進程,當預定時間內或者提醒次數(shù)超過預設次數(shù)時,仍然沒有接收到用戶關閉相關進程的消息時,處理器401利用該監(jiān)控進程自動對該被監(jiān)控的進程進行處理;此外,處理器401還可以同時對操作系統(tǒng)的其他進程進行處理,或者對操作系統(tǒng)的其他進程進行處理,例如調整其他進程的優(yōu)先級等以減輕或克服運行卡頓或錯誤問題,提高系統(tǒng)穩(wěn)定性,此處不做具體限定。
進一步地,處理器401還可以利用操作系統(tǒng)自身進程先對被監(jiān)控的進程進行身份驗證,并在驗證通過時,則獲取被監(jiān)控的進程的身份標識及其運行相關參數(shù),在驗證不通過時,屏蔽被監(jiān)控的進程,以使被監(jiān)控的進程無法訪問系統(tǒng)。
例如,處理器401利用操作系統(tǒng)自身進程獲取嘗試訪問系統(tǒng)的被監(jiān)控的進程的身份標識,判斷該身份標識是否在系統(tǒng)保存的進程列表中,其中該進程列表包括具有訪問權限的所有進程,若該被監(jiān)控的進程的身份標識在該進程列表中,則驗證通過,獲取被監(jiān)控的進程的身份標識及其運行相關參數(shù);若該被監(jiān)控的進程的身份標識不在該進程列表中,則驗證不通過,屏蔽該被監(jiān)控的進程,以使該被監(jiān)控的進程無法訪問系統(tǒng),從而防止不具有訪問權限的非法程序訪問系統(tǒng),提高系統(tǒng)的安全性。
當然,在其他應用例中,操作系統(tǒng)自身進程還可以采用驗證數(shù)字證書等其他方式對被監(jiān)控的進程進行身份驗證,此處不做具體限定。
進一步參閱圖4,在另一應用例中,處理器401用于判斷是否接收到被監(jiān)控的進程的退出信號,在接收到被監(jiān)控的進程的退出信號時,重新啟動被監(jiān)控的進程。
具體的,被監(jiān)控的進程異常退出時,其向操作系統(tǒng)發(fā)送一個退出信號,該退出信號中包括該被監(jiān)控的進程的身份標識,處理器401利用該操作系統(tǒng)自身的進程,即操作系統(tǒng)內核中運行的監(jiān)控進程,從該退出信號中獲取該被監(jiān)控的進程的身份標識,為了保證被監(jiān)控的進程保持運行狀態(tài),該監(jiān)控進程向該被監(jiān)控的進程發(fā)送重啟信號,例如1,以重新啟動該身份標識對應的被監(jiān)控的進程。
在其他應用例中,處理器401可以從存儲器402中獲取重新啟動配置文件中記錄的該身份標識對應的控制腳本名稱,執(zhí)行控制腳本名稱對應的控制腳本,以重新啟動該身份標識對應的被監(jiān)控的進程,從而保證被監(jiān)控的進程持續(xù)運行,提高計算設備40的穩(wěn)定性。
當然,在其他實施方式中,該計算設備40還可以是平板電腦、筆記本電腦等其他計算設備,此處不做具體限定。
本實施方式中,計算設備利用操作系統(tǒng)自身進程獲取被監(jiān)控的進程的身份標識及其運行相關參數(shù),判斷運行相關參數(shù)是否超過預先設置的閾值,在超過預先設置的閾值時,對超過預先設置的閾值的被監(jiān)控的進程和/或操作系統(tǒng)的其他進程進行處理,從而實現(xiàn)自動監(jiān)控并處理被監(jiān)控的進程和/或操作系統(tǒng)的其他進程,不需要用戶手動處理,提高計算設備的靈活性。
以上所述僅為本發(fā)明的實施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內。