13-進程監控和維護配置
本章節下載: 13-進程監控和維護配置 (293.31 KB)
目 錄
設備的係統軟件基於Linux內核,各個網絡服務功能分別運行各自的進程,實現模塊化。運行在用戶空間的進程稱為用戶態進程,與用戶態進程相對的是內核線程,內核線程運行在內核態空間。
· 係統軟件的絕大部分程序是用戶態進程。每個用戶態進程擁有獨立的進程空間,單個進程的異常不會影響係統其他進程,從而提高了係統的可靠性。通常情況下,係統會自動監控用戶態進程,不需要用戶幹預。當單個用戶態進程中包含多個獨立或半獨立的活動,可以將這些活動拆分成多個線程。係統軟件支持多線程並發和搶占,多個線程分工合作共同實現某個功能。一個進程是否包含多個線程,由軟件實現需要決定。
· 內核線程用來執行係統軟件內核代碼和係統調用。它擁有比用戶態進程更高的安全級別,當內核線程發生異常,通常係統會完全崩潰。用戶可以使用命令行來監控內核線程的運行狀態。
進程監控和維護配置任務如下:
· (可選)開啟/關閉第三方進程
¡ 開啟第三方進程
¡ 關閉第三方進程
· 監控和維護用戶態進程
本節中羅列的命令對用戶態進程和內核線程均適用。
本節中羅列的命令僅對用戶態進程適用。
· 監控和維護內核線程
本節中羅列的命令對用戶態進程和內核線程均適用。
本節中羅列的命令僅對內核線程適用。
Comware係統運行時,不會自動開啟第三方進程。使用本特性,用戶可以開啟或關閉python2等第三方進程。
本特性的支持情況與設備型號有關,請以設備的實際情況為準。
型號 |
說明 |
MSR610 |
支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
支持 |
MSR1004S-5G、MSR1004S-5G-CN |
不支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN、MSR1104S-W-5GGL |
支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
支持 |
MSR2600-10-X1 |
不支持 |
MSR2630-G-X1 |
不支持 |
MSR2630 |
不支持 |
MSR3600-28、MSR3600-51 |
不支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
不支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
不支持 |
MSR3600-28-G-X1-DP、MSR3600-51-G-X1-DP |
不支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
不支持 |
MSR-iMC |
不支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
MSR3610、MSR3620、MSR3620-DP、MSR3640、MSR3660 |
不支持 |
MSR3610-G、MSR3620-G |
不支持 |
MSR3640-G |
不支持 |
MSR3640-X1-HI |
不支持 |
型號 |
說明 |
MSR810-W-WiNet、MSR810-LM-WiNet |
支持 |
MSR830-4LM-WiNet |
支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
支持 |
MSR2600-6-WiNet |
支持 |
MSR2600-10-X1-WiNet |
不支持 |
MSR2630-WiNet |
不支持 |
MSR3600-28-WiNet |
不支持 |
MSR3610-X1-WiNet |
支持 |
MSR3620-X1-WiNet |
支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
不支持 |
型號 |
說明 |
MSR860-6EI-XS |
不支持 |
MSR860-6HI-XS |
不支持 |
MSR2630-XS |
支持 |
MSR3600-28-XS |
不支持 |
MSR3610-XS |
支持 |
MSR3620-XS |
不支持 |
MSR3610-I-XS |
不支持 |
MSR3610-IE-XS |
不支持 |
MSR3620-X1-XS |
支持 |
MSR3640-XS |
支持 |
MSR3660-XS |
不支持 |
型號 |
說明 |
MSR810-LM-GL |
支持 |
MSR810-W-LM-GL |
支持 |
MSR830-6EI-GL |
支持 |
MSR830-10EI-GL |
支持 |
MSR830-6HI-GL |
支持 |
MSR830-10HI-GL |
支持 |
MSR1004S-5G-GL |
不支持 |
MSR2600-6-X1-GL |
支持 |
MSR3600-28-SI-GL |
不支持 |
(1) 進入係統視圖。
system-view
(2) 開啟第三方進程。
third-part-process start name process-name [ arg args ]
(1) 請在任意視圖下執行如下命令,顯示第三方進程的編號。
display process all
本命令的顯示信息中THIRD字段標識為Y的進程為第三方進程,PID字段為進程的編號。
(2) 進入係統視圖。
system-view
(3) 關閉第三方進程。
third-part-process stop pid pid&<1-10>
本命令隻能關閉通過third-part-process start命令開啟的第三方進程。
本節中羅列的命令對用戶態進程和內核線程均適用。使用這些命令,可以進行如下操作:
· 顯示內存的整體使用情況。
· 顯示係統當前運行了哪些進程,每個進程占用了多少內存和多少CPU資源。
· 定位異常進程。如果某個進程占用內存或者CPU資源過多,則確認該進程為異常源。如果異常源是用戶態進程,可參考“1.5 監控和維護用戶態進程”來進一步定位解決問題;如果異常源是內核線程,可參考“1.6 監控與維護內核線程”來進一步定位解決問題。
請在任意視圖下執行以下命令,來監控和維護進程。
表1-1 監控和維護進程
操作 |
命令 |
顯示係統內存使用情況(本命令的詳細描述請參見“基礎配置命令參考中的“設備管理”) |
(獨立運行模式) display memory [ summary ] (IRF模式) display memory [ summary ] [ slot slot-number [ cpu cpu-number ] ] |
顯示進程的狀態信息 |
(獨立運行模式) display process [ all | job job-id | name process-name ] (IRF模式) display process [ all | job job-id | name process-name ] [ slot slot-number [ cpu cpu-number ] ] |
顯示所有進程的CPU占有率信息 |
(獨立運行模式) display process cpu (IRF模式) display process cpu [ slot slot-number [ cpu cpu-number ] ] |
監控進程運行狀態 |
(獨立運行模式) monitor process [ dumbtty ] [ iteration number ] (IRF模式) monitor process [ dumbtty ] [ iteration number ] [ slot slot-number [ cpu cpu-number ] ] |
監控線程運行狀態 |
(獨立運行模式) monitor thread [ dumbtty ] [ iteration number ] (IRF模式) monitor thread [ dumbtty ] [ iteration number ] [ slot slot-number [ cpu cpu-number ] ] |
當用戶態進程運行異常,可使用本特性來進一步監控用戶態進程、定位用戶態進程故障。
開啟用戶態進程的core文件生成功能,並配置能生成的core文件的最大個數後,用戶態進程異常重啟一次,就會產生一個core文件並記錄用戶態進程的異常信息。如果生成的core文件的數目達到最大值,則不再生成新的core文件。軟件開發和維護人員能夠根據core文件的內容來定位異常的原因和異常的位置。
因為生成的core文件會占用係統存儲資源,如果用戶對某些用戶態進程的異常退出不關心,可以關閉這些用戶態進程的core文件記錄功能。
以下命令均在用戶視圖下執行。
(1) (可選)配置core文件的保存路徑。
exception filepath directory
缺省情況下,Core文件的保存路徑為設備缺省文件係統的根目錄。關於缺省文件係統的詳細介紹請參見“基礎配置指導”中的“文件係統管理”。
(2) 開啟/關閉用戶態進程異常時生成core文件的功能,以及配置能生成的core文件的最大個數。
process core { maxcore value | off } { job job-id | name process-name }
缺省情況下,用戶態進程在首次異常時會生成core文件,後續異常不再生成core文件。即maxcore的最大數值為1。
在任意視圖下,通過用戶態進程的顯示信息,用戶可以更好的了解用戶態進程的實時運行狀態;同時,當出現係統異常繁忙或者資源消耗異常等故障時,顯示信息可以幫助用戶確認出現故障的功能點,以便盡快進行功能的恢複。
在用戶視圖下,執行reset命令,可以清除用戶態進程的指定信息。
表1-2 用戶態進程顯示和維護
操作 |
命令 |
顯示用戶態進程異常時的上下文信息 |
(獨立運行模式) display exception context [ count value ] (IRF模式) display exception context [ count value ] [ slot slot-number [ cpu cpu-number ] ] |
顯示core文件的保存路徑 |
(獨立運行模式) display exception filepath (IRF模式) display exception filepath [ slot slot-number [ cpu cpu-number ] ] |
顯示所有用戶態進程的日誌信息 |
(獨立運行模式) display process log (IRF模式) display process log [ slot slot-number [ cpu cpu-number ] ] |
顯示所有用戶態進程的代碼段、數據段以及堆棧等的內存使用信息 |
(獨立運行模式) display process memory (IRF模式) display process memory [ slot slot-number [ cpu cpu-number ] ] |
顯示用戶態進程堆內存的使用情況 |
(獨立運行模式) display process memory heap job job-id [ verbose ] (IRF模式) display process memory heap job job-id [ verbose ] [ slot slot-number [ cpu cpu-number ] ] |
顯示從指定地址開始的內存空間的內容 |
(獨立運行模式) display process memory heap job job-id address starting-address length memory-length (IRF模式) display process memory heap job job-id address starting-address length memory-length [ slot slot-number [ cpu cpu-number ] ] |
顯示指定大小已使用內存塊的地址 |
(獨立運行模式) display process memory heap job job-id size memory-size [ offset offset-size ] (IRF模式) display process memory heap job job-id size memory-size [ offset offset-size ] [ slot slot-number [ cpu cpu-number ] ] |
清除用戶態進程異常時記錄的上下文信息 |
(獨立運行模式) reset exception context (IRF模式) reset exception context [ slot slot-number [ cpu cpu-number ] ] |
在內核態空間中,所有資源都是共享的,多個內核線程之間通過任務調度協調工作。如果某個內核線程長時間一直占用CPU,就會導致其它內核線程獲取不到運行機會,整個係統掛死,這種現象稱為死循環。
開啟內核線程死循環檢測功能後,如果係統發現某內核線程在指定時間內一直占用CPU,則判定該內核線程為死循環。係統會記錄一條死循環信息供管理員查詢,並自動重啟整個係統來解除死循環。
對於內核線程死循環檢測功能,建議用戶使用缺省配置即可。如果確實需要修改缺省配置,請在工程師的指導下進行,以免引起係統異常。
(1) 進入係統視圖。
system-view
(2) 開啟內核線程死循環檢測功能。
(獨立運行模式)
monitor kernel deadloop enable [ cpu cpu-number [ core core-number&<1-64> ] ]
(IRF模式)
monitor kernel deadloop enable [ slot slot-number [ cpu cpu-number [ core core-number&<1-64> ] ] ]
缺省情況下,內核線程死循環檢測功能處於開啟狀態。
(3) (可選)配置判定內核線程是否死循環的時長。
(獨立運行模式)
monitor kernel deadloop time time
(IRF模式)
monitor kernel deadloop time time [ slot slot-number [ cpu cpu-number ] ]
缺省情況下,當某內核線程連續運行超過20秒鍾,則判定為死循環。
(4) (可選)配置不檢測指定內核線程是否發生了死循環。
(獨立運行模式)
monitor kernel deadloop exclude-thread tid
(IRF模式)
monitor kernel deadloop exclude-thread tid [ slot slot-number [ cpu cpu-number ] ]
缺省情況下,開啟內核線程死循環檢測功能後,會監控所有內核線程是否發生了死循環。
(5) 配置內核線程死循環後觸發糾錯動作的閾值。
(獨立運行模式)
monitor kernel deadloop action threshold threshold
(IRF模式)
monitor kernel deadloop action threshold threshold [ slot slot-number [ cpu cpu-number ] ]
缺省情況下,當係統檢測到1次內核線程發生死循環時,就觸發糾錯動作。
配置本命令後,當內核線程連續發生死循環的次數達到指定值時,設備會采取指定的動作來消除死循環。
如果內核線程本身的觸發條件沒有達到,會導致該內核線程在一段時間內一直得不到調度,這種現象稱為餓死。
開啟內核線程餓死檢測功能後,當係統檢測到某內核線程餓死時,會記錄一條餓死信息供管理員查詢。
內核線程餓死並不會影響整個係統的運行,當觸發條件達到,處於餓死狀態的內核線程會自動執行。
對於內核線程餓死檢測功能,建議用戶使用缺省配置即可。如果確實需要修改缺省配置,請在工程師的指導下進行,以免引起係統異常。
(1) 進入係統視圖。
system-view
(2) 開啟內核線程餓死檢測功能。
(獨立運行模式)
monitor kernel starvation enable
(IRF模式)
monitor kernel starvation enable [ slot slot-number [ cpu cpu-number ] ]
缺省情況下,內核線程餓死檢測功能處於關閉狀態。
(3) (可選)配置判定內核線程是否餓死的時長。
(獨立運行模式)
monitor kernel starvation time time
(IRF模式)
monitor kernel starvation time time [ slot slot-number [ cpu cpu-number ] ]
缺省情況下,當某內核線程在120秒內一直沒有運行,則認為該內核線程被餓死。
(4) (可選)配置不檢測指定內核線程是否發生了餓死。
(獨立運行模式)
monitor kernel starvation exclude-thread tid
(IRF模式)
monitor kernel starvation exclude-thread tid [ slot slot-number [ cpu cpu-number ] ]
缺省情況下,開啟內核線程餓死檢測功能後,會監控所有內核線程是否發生了餓死。
在任意視圖下,通過內核線程的顯示信息,用戶可以更好的了解內核線程的實時運行狀態;同時,當出現係統異常繁忙或者資源消耗異常等故障時,顯示信息可以幫助用戶確認出現故障的功能點,以便盡快進行功能的恢複。
在用戶視圖下,執行reset命令,可以清除內核線程的統計信息。
表1-3 內核線程顯示和維護
操作 |
命令 |
顯示內核線程死循環監控參數配置 |
(獨立運行模式) display kernel deadloop configuration (IRF模式) display kernel deadloop configuration [ slot slot-number [ cpu cpu-number ] ] |
顯示內核線程死循環信息 |
(獨立運行模式) display kernel deadloop show-number [ offset ] [ verbose ] (IRF模式) display kernel deadloop show-number [ offset ] [ verbose ] [ slot slot-number [ cpu cpu-number ] ] |
顯示內核線程的異常信息 |
(獨立運行模式) display kernel exception show-number [ offset ] [ verbose ] (IRF模式) display kernel exception show-number [ offset ] [ verbose ] [ slot slot-number [ cpu cpu-number ] ] |
顯示內核線程餓死監控參數配置 |
(獨立運行模式) display kernel starvation configuration (IRF模式) display kernel starvation configuration [ slot slot-number [ cpu cpu-number ] ] |
清除內核線程死循環信息 |
(獨立運行模式) reset kernel deadloop (IRF模式) reset kernel deadloop [ slot slot-number [ cpu cpu-number ] ] |
清除內核線程的異常信息 |
(獨立運行模式) reset kernel exception (IRF模式) reset kernel exception [ slot slot-number [ cpu cpu-number ] ] |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!