• 產品與解決方案
  • 行業解決方案
  • 服務
  • 支持
  • 合作夥伴
  • 關於我們

11-網絡管理和監控配置指導

目錄

11-進程監控和維護配置

本章節下載 11-進程監控和維護配置  (226.92 KB)

11-進程監控和維護配置


1 進程監控和維護

設備的係統軟件基於Linux內核,各個網絡服務功能分別運行各自的進程,實現模塊化。運行在用戶空間的進程稱為用戶態進程,與用戶態進程相對的是內核線程,內核線程運行在內核態空間。

·            係統軟件的絕大部分程序是用戶態進程。每個用戶態進程擁有獨立的進程空間,單個進程的異常不會影響係統其他進程,從而提高了係統的可靠性。通常情況下,係統會自動監控用戶態進程,不需要用戶幹預。當單個用戶態進程中包含多個獨立或半獨立的活動,可以將這些活動拆分成多個線程。係統軟件支持多線程並發和搶占,多個線程分工合作共同實現某個功能。一個進程是否包含多個線程,由軟件實現需要決定。

·            內核線程用來執行係統軟件內核代碼和係統調用。它擁有比用戶態進程更高的安全級別,當內核線程發生異常,通常係統會完全崩潰。用戶可以使用命令行來監控內核線程的運行狀態。

1.1  進程顯示和維護

本小節涉及的命令對用戶態進程和內核線程均適用,可在任意視圖下執行。使用這些命令,可以進行如下操作:

·            顯示內存的整體使用情況。

·            顯示係統當前運行了哪些進程,每個進程占用了多少內存和多少CPU。

·            如果某個進程占用內存或者CPU過多,則確認該進程為異常源。如果異常源是用戶態進程,可參考“1.2  用戶態進程顯示和維護”來進一步定位解決問題;如果異常源是內核線程,可參考“1.3  監控內核線程”來進一步定位解決問題。

表1-1 進程顯示和維護

操作

命令

顯示係統內存使用情況(本命令的詳細描述請參見“基礎配置命令參考”中的“設備管理”)

display memory [ slot slot-number [ cpu cpu-number ] ]

顯示進程的狀態信息

display process [ all | job job-id | name process-name ] [ slot slot-number [ cpu cpu-number ] ]

顯示所有進程的CPU占有率信息

display process cpu [ slot slot-number [ cpu cpu-number ] ]

監控進程運行狀態

monitor process [ dumbtty ] [ iteration number ] [ slot slot-number [ cpu cpu-number ] ]

監控線程運行狀態

monitor thread [ dumbtty ] [ iteration number ] [ slot slot-number [ cpu cpu-number ] ]

1.2  用戶態進程顯示和維護

當用戶態進程運行異常,可使用如下命令來定位故障。其中,display命令可在任意視圖下執行,其它命令在用戶視圖下執行。

表1-2 用戶態進程顯示和維護

操作

命令

說明

顯示所有用戶態進程的日誌信息

display process log [ slot slot-number [ cpu cpu-number ] ]

-

顯示所有用戶態進程的代碼段、數據段以及堆棧等的內存使用信息

display process memory [ slot slot-number [ cpu cpu-number ] ]

-

顯示用戶態進程堆內存的使用情況

display process memory heap job job-id [ verbose ] [ slot slot-number [ cpu cpu-number ] ]

-

顯示指定大小已使用內存塊的地址

display process memory heap job job-id size memory-size [ offset offset-size ] [ slot slot-number [ cpu cpu-number ] ]

-

顯示從指定地址開始的內存空間的內容

display process memory heap job job-id address starting-address length memory-length [ slot slot-number [ cpu cpu-number ] ]

-

顯示用戶態進程異常時的上下文信息

display exception context [ count value ] [ slot slot-number [ cpu cpu-number ] ]

-

顯示core文件的保存路徑

display exception filepath [ slot slot-number [ cpu cpu-number ] ]

-

開啟/關閉用戶態進程異常時的生成core文件的功能,以及配置能生成的core文件的最大個數

process core { maxcore value | off } { job job-id | name process-name } [ slot slot-number [ cpu cpu-number ] ]

缺省情況下,用戶態進程在首次異常時會生成core文件,後續異常不再生成core文件。即maxcore的最大數值為1

配置core文件的保存路徑

exception filepath directory

Core文件的保存路徑為flash:

清除用戶態進程異常時記錄的上下文信息

reset exception context [ slot slot-number [ cpu cpu-number ] ]

-

1.3  監控內核線程

如果某個內核線程運行異常,可以顯示該內核線程是否發生了死循環或者處於餓死狀態,以及異常、重啟的原因。

1.3.1  配置內核線程死循環檢測功能

提示

對於本特性,建議用戶使用缺省配置即可。如果確實需要修改缺省配置,請在工程師的指導下進行,以免引起係統異常。

 

在內核態空間中,所有資源都是共享的,多個內核線程之間通過任務調度協調工作。如果某個內核線程長時間一直占用CPU,就會導致其它內核線程獲取不到運行機會,整個係統掛死,我們稱這種現象為死循環。

開啟內核線程死循環檢測功能後,如果係統發現某內核線程在指定時間內一直占用CPU,則判定該內核線程為死循環。係統會記錄一條死循環信息供管理員查詢,並自動重啟整個係統來解除死循環。

表1-3 配置內核線程死循環檢測功能

操作

命令

說明

進入係統視圖

system-view

-

開啟內核線程死循環檢測功能

monitor kernel deadloop enable [ slot slot-number [ cpu cpu-number [ core core-number&<1-64> ] ] ]

內核線程死循環檢測功能處於開啟狀態

(可選)配置判定內核線程是否死循環的時長

monitor kernel deadloop time time [ slot slot-number [ cpu cpu-number ] ]

缺省情況下,當某內核線程連續運行超過20秒鍾,則判定為死循環

(可選)配置不檢測指定內核線程是否發生了死循環

monitor kernel deadloop exclude-thread tid [ slot slot-number [ cpu cpu-number ] ]

缺省情況下,開啟內核線程死循環檢測功能後,會監控所有內核線程是否發生了死循環

(可選)配置內核線程死循環後係統執行的操作

monitor kernel deadloop action { reboot | record-only } [ slot slot-number [ cpu cpu-number ] ]

缺省情況下,係統檢測到內核線程死循環後,執行的操作為record-only

1.3.2  配置內核線程餓死檢測功能

提示

開機後,係統會自動檢測內核線程是否發生了餓死,建議用戶不要隨意配置內核線程餓死檢測功能。如果確實需要配置,請在工程師的指導下進行,以免引起係統異常。

 

如果內核線程本身的觸發條件沒有達到,會導致該內核線程在一段時間內一直得不到調度,我們稱這種現象為餓死。

開啟內核線程餓死檢測功能後,當係統檢測到某內核線程餓死時,會記錄一條餓死信息供管理員查詢。

內核線程餓死並不會影響整個係統的運行,當觸發條件達到,處於餓死狀態的內核線程會自動執行。

表1-4 配置內核線程餓死檢測功能

操作

命令

說明

進入係統視圖

system-view

-

開啟內核線程餓死檢測功能

monitor kernel starvation enable [ slot slot-number [ cpu cpu-number ] ]

缺省情況下,內核線程餓死檢測功能處於關閉狀態

(可選)配置判定內核線程是否餓死的時長

monitor kernel starvation time time [ slot slot-number [ cpu cpu-number ] ]

缺省情況下,當某內核線程在120秒內一直沒有運行,則認為該內核線程被餓死

(可選)配置不檢測指定內核線程是否發生了餓死

monitor kernel starvation exclude-thread tid [ slot slot-number [ cpu cpu-number ] ]

缺省情況下,開啟內核線程餓死檢測功能後,會監控所有內核線程是否發生了餓死

1.3.3  內核線程顯示和維護

在任意視圖下,通過顯示內核線程的顯示信息,用戶可以更好的了解內核線程的實時運行狀態;同時,當出現係統異常繁忙或者資源消耗異常等故障時,顯示信息可以幫助用戶確認出現故障的功能點,以便盡快進行功能的恢複。

在用戶視圖下,執行reset命令,可以清除內核線程的統計信息。

表1-5 內核線程顯示和維護

操作

命令

顯示內核線程死循環信息

display kernel deadloop show-number [ offset ] [ verbose ] [ slot slot-number [ cpu cpu-number ] ]

顯示內核線程死循環監控參數配置

display kernel deadloop configuration [ slot slot-number [ cpu cpu-number ] ]

顯示內核線程的異常信息

display kernel exception show-number [ offset ] [ verbose ] [ slot slot-number [ cpu cpu-number ] ]

顯示內核線程的重啟信息

display kernel reboot show-number [ offset ] [ verbose ] [ slot slot-number [ cpu cpu-number ] ]

顯示內核線程餓死信息

display kernel starvation show-number [ offset ] [ verbose ] [ slot slot-number [ cpu cpu-number ] ]

顯示內核線程餓死監控參數配置

display kernel starvation configuration [ slot slot-number [ cpu cpu-number ] ]

清除內核線程死循環信息

reset kernel deadloop [ slot slot-number [ cpu cpu-number ] ]

清除內核線程的異常信息

reset kernel exception [ slot slot-number [ cpu cpu-number ] ]

清除內核線程重啟信息

reset kernel reboot [ slot slot-number [ cpu cpu-number ] ]

清除內核線程餓死信息

reset kernel starvation [ slot slot-number [ cpu cpu-number ] ]

不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!

BOB登陆
官網
聯係我們