簡介
本文介紹StarOS系統上CPU/記憶體/檔案使用的基本資訊,以及在出現問題時如何進行故障排除。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
資源管理子系統為系統中的每個任務分配一組資源限制。它監控每項任務的資源使用情況,以確保資源使用量保持在限制內。如果任務已超出其限制,它會通過Syslog或簡單網路管理協定(SNMP)陷阱通知操作員。本檔案將說明其工作原理以及您必須收集哪些記錄以進行進一步的疑難排解。
您可以在show task resources命令列介面(CLI)的輸出中檢查基本資訊。
使用者無法更改分配的資源限制。
分配的資源限制因StarOS版本而異。
以下是系統存在問題時發生的SNMP範例:
Mon Aug 26 11:32:19 2013 Internal trap notification 1221 (MemoryOver) facility sessmgr instance 16 card 1 cpu 0 allocated 204800 used 220392
Mon Aug 26 11:32:29 2013 Internal trap notification 1222 (MemoryOverClear) facility sessmgr instance 16 card 1 cpu 0 allocated 1249280 used 219608
Fri Dec 20 13:52:20 2013 Internal trap notification 1217 (MemoryWarn) facility npudrv instance 401 card 5 cpu 0 allocated 112640 used 119588
Fri Dec 20 14:07:26 2013 Internal trap notification 1218 (MemoryWarnClear) facility cli instance 5011763 card 5 cpu 0 allocated 56320 used 46856
Wed Dec 25 12:24:16 2013 Internal trap notification 1220 (CPUOverClear) facility cli instance 5010294 card 5 cpu 0 allocated 600 used 272
Wed Dec 25 12:24:16 2013 Internal trap notification 1216 (CPUWarnClear) facility cli instance 5010294 card 5 cpu 0 allocated 600 used 272
Wed Dec 25 17:04:56 2013 Internal trap notification 1215 (CPUWarn) facility cli instance 5010317 card 5 cpu 0 allocated 600 used 595
Wed Dec 25 17:05:36 2013 Internal trap notification 1216 (CPUWarnClear) facility cli instance 5010317 card 5 cpu 0 allocated 600 used 220
CPU使用率監控
CPUWarn SNMP陷阱在proclet的cpu使用率達到其分配的90%時生成。
生成CPUWarn後,當proclet的cpu使用率達到其從警告值分配的50%以上時生成CPUOver。
如果proclet的cpu使用率在生成CPUWarn之前達到其分配的使用率,則生成CPUOver。
當使用率回退到已分配的50%時,CPUWarn/Over會被清除。
範例:
如果設施的系統分配為60,則當值達到54時,系統產生SNMP陷阱(CPUWarn)。
由於系統的裝置分配是60,當proclet的cpu使用率達到其從警告值分配的50%以上,在這種情況下,當系統達到84(54+30)時,系統生成SNMP陷阱(CPUOver)。
記憶體使用率監控
MemoryWarn是在proclet的記憶體使用達到其分配時生成的。
MemoryOver在proclet的記憶體使用率超過其分配的+ 15MB(即其分配的兩倍)時生成。
當使用率回到95%的分配時,會清除MemoryWarn/MemoryOver。
範例:
如果裝置的系統分配為60MB,則對於任何大於60MB的值,系統都會生成SNMP陷阱MemoryWarn。
由於裝置的系統分配是60MB,因此當任務記憶體利用率達到75MB時,系統生成SNMP陷阱MemoryOver。
檔案使用率監控
Files表示開啟檔案的數量或進程正在使用的檔案描述符。
沒有針對檔案使用情況實施SNMP陷阱,但會針對超出/清除狀態生成日誌記錄消息。
當proclet的檔案使用率超過其分配的+ 10%分配時,會生成超日誌。
當proclet的檔案使用率回退到其分配的90%時,會生成清除日誌。
2013-May-28+14:16:18.746 [resmgr 14517 warning] [8/0/4440 <rmmgr:80>
_resource_cpu.c:3558] [software internal system syslog] The task cli-8031369 is over its
open files limit. Allocated 2000, Using 2499
顯示任務資源中的狀態
show task resources CLI輸出中的狀態欄位具有不同的條件。
在下面的圖片中,WARN為warn,而ALARM為over狀態。
疑難排解
對於CPU使用率
當系統開始生成與CPU相關的SNMP陷阱時,請在出現活動問題時收集以下資訊:
顯示任務資源
檢查是否有進程進入警告/超狀態狀態
顯示任務資源最大值
檢查最大使用量而不是當前使用量
檢查是否存在任何CPUWarn/Over事件
注意:這是隱藏/測試命令,請參閱文檔如何在StarOs中啟用和進入測試模式。
此命令不影響服務,可以在生產環境中運行。
show profile card <card number> cpu <cpu number> depth <value>
這就是所謂的後台探查器。
後台探查器始終為 運行(即使在生產中),固定取樣週期為1.
我們可以知道哪台PC佔用CPU資源、每個卡/cpu/裝置/例項等。
建議使用預設值1來指定深度。(例如4)
記憶體使用
當系統開始生成與記憶體相關的SNMP陷阱時,請在出現活動問題時收集以下資訊:
顯示任務資源
檢查是否有進程進入警告/超狀態狀態
顯示任務資源最大值
檢查最大使用量而不是當前使用量
show snmp trap history
檢查是否存在任何MemoryWarn/Over事件
顯示日誌
檢查resmgr是否報告任何警告/錯誤。
注意:這是隱藏/測試命令,請參閱文檔如何在StarOs中啟用和進入測試模式。
此命令不影響服務,可以在生產環境中運行。
show messenger proclet facility <name> instance <x> heap
檢查proclet的堆使用情況
注意:這是隱藏/測試命令,請參閱文檔如何在StarOs中啟用和進入測試模式。
此命令不影響服務,可以在生產環境中運行。
show messenger proclet facility <name> instance <x> system heap
檢查包含進程的系統堆資訊
提示:在向TAC提出服務請求之前,每10分鐘執行多次cpu相關命令輸出和4次輸出。
對於檔案使用
在OS級別設定的實際檔案限制高於StarOs中的檔案使用限制。
例如,對於任務Diameter Proxy(diaproxy),作業系統級別限製為8192。在StarOS中,進程最多可以消耗8192,而檔案限制設定為1000。
asr5500:card3-cpu0# ps -ef | grep diam
root 5934 4555 0 Jul02 ? 00:07:52 diamproxy --readypipe 8 --limit_mode 8 --card_number 3 --cpu_number 0 --master_spc 3
asr5500:card3-cpu0# cat /proc/5934/limits | grep open
Max open files 8192 8192 files
[local]asr5500-2# show task resources facility diamproxy all
Friday July 11 10:05:54 JST 2014
task cputime memory files sessions
cpu facility inst used allc used alloc used allc used allc S status
----------------------- --------- ------------- --------- ------------- ------
3/0 diamproxy 2 0.3% 90% 22.83M 250.0M 216 1000 -- -- - good
8/0 diamproxy 1 0.4% 90% 22.71M 250.0M 69 1000 -- -- - good
還有CPU級別限制,請同時檢查它,只要您有足夠的可用空間,就沒問題。
[local]ASR5500# show cpu info card 1 cpu 0
Card 1, CPU 0:
Status : Active, Kernel Running, Tasks Running
Load Average : 0.26, 0.39, 0.44 (1.78 max)
Total Memory : 32768M (16384M node-0, 16384M node-1)
Kernel Uptime : 3D 22H 11M
Last Reading:
CPU Usage All : 0.1% user, 0.3% sys, 0.0% io, 0.0% irq, 99.6% idle
Node 0 : 0.1% user, 0.3% sys, 0.0% io, 0.0% irq, 99.5% idle
Node 1 : 0.1% user, 0.2% sys, 0.0% io, 0.0% irq, 99.7% idle
Processes / Tasks : 185 processes / 29 tasks
Network : 0.326 kpps rx, 0.912 mbps rx, 0.208 kpps tx, 3.485 mbps tx
File Usage : 1792 open files, 3279141 available
Memory Usage : 1619M 4.9% used (1209M 7.4% node-0, 409M 2.5% node-1)
當可用時間小於256時,將生成以下警告消息:
event 14516
user_resource_cpu_cpu_low_files(uint32 card, uint32 cpu, uint32 used, uint32 remain)
"The CPU %d/%d is running low on available open files. (%u used, %u remain)"
warning
software internal system critical-info