簡介
本文檔描述任務的資源使用在StarOS中如何工作,並提供需要收集日誌的清單,以對CPU/記憶體/檔案使用率高事件進行故障排除。在StarOS上,資源管理子系統(resctrl / resmgr)為系統中的每個任務分配一組資源限制。它會監控每個任務的資源使用情況,以確保任務在限制範圍內。當任務超出其限制時,將生成系統日誌或簡單網路管理協定(SNMP)陷阱來通知網路操作。
資源監測機制
在StarOS上運行許多工,例如sessmgr/aaamgr/vpnmgr等。每個任務都設定了CPU/記憶體/檔案使用限制,這些限制由資源管理監控。限制可以因任務型別(sessmgr和aamgr具有不同的限制)、StarOS版本和硬體型別而不同。此外,限制由系統定義,使用者不可配置。
StarOS上每個任務的說明可在系統管理指南的StarOS任務一章中找到。
基本資源使用情況資訊可在 show task resources
CLI指令。
欄位 |
說明 |
已使用cputime |
任務的CPU使用情況 |
cputime allc |
分配給任務的CPU使用率限制 |
使用的記憶體 |
任務的記憶體使用情況 |
記憶體分配 |
為任務分配的記憶體使用限制 |
使用的檔案 |
任務的檔案使用情況 |
檔案allc |
已分配檔案的任務使用情況 |
狀態 |
任務狀態:良好/警告/結束 |
重要的是要瞭解,目的是監視資源並且不限制任務功能。即使任務消耗的CPU/記憶體/檔案超過限制,也必須能夠工作。系統日誌和SNMP陷阱在超過限制時生成,但並不總是指示問題。
可疑原因
在很多情況下,臨時使用率飆升並不是問題。但是,如果任務的CPU使用率始終為100%,或者記憶體使用率持續增長且從未減少,則需要調查此類情況。
臨時性激增的典型原因是:
- 生成巨大輸出的CLI命令(CLI任務)
- 系統中保留的日誌資訊量(evlogd任務)
需要調查的案件有:
- 內部無限循環導致的CPU使用率高(CPU使用率保持在100%)
- 記憶體洩漏或分段導致記憶體使用率持續增加
sessmgr、npudrv和CLI工具中的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使用率
當CPU任務使用率接近或超過限制時,CPUWarn和CPUOver SNMP陷阱會隨系統日誌警告一起生成。
SNMP陷阱
Internal trap notification 1215 (CPUWarn) facility sct instance 0 card 8 cpu 0 allocated 500 used 451
Internal trap notification 1219 (CPUOver) facility cli instance 5010046 card 5 cpu 0 allocated 600 used 609
在CPUOver示例中,例項編號5010046消耗60.9%的CPU使用率,而限製為60%。
系統日誌
[resmgr 14502 warning] [2/0/2352
_resource_cpu.c:2876] [software internal system] The task ipsecmgr-202 is over it's cputime limit. Allocated 50.0%, Using 51.8%
附註:此系統日誌是警告級別,不是使用預設日誌記錄設定生成的。如果需要生成此命令,則必須將resmgr的日誌記錄設定配置為警告。
記憶體使用情況
當記憶體任務使用率接近或超過限制時,MemoryWarn和MemoryOver SNMP陷阱會隨系統日誌警告一起生成。
SNMP陷阱
Internal trap notification 1217 (MemoryWarn) facility cli instance 5005588 card 5 cpu 0 allocated 66560 used 70212
Internal trap notification 1221 (MemoryOver) facility cli instance 5010046 card 5 cpu 0 allocated 66560 used 89940
在MemoryOver示例中,當限製為5010046時,89940例號將消耗記憶體66560。
系統日誌
[resmgr 14500 warning] [8/0/4054
_resource_cpu.c:3622] [software internal system syslog] The task bulkstat-0 is over its memory limit. Allocated 46080K, Using 48120K
附註:此系統日誌是警告級別,不是使用預設日誌記錄設定生成的。如果需要生成此命令,則必須將resmgr的日誌記錄設定配置為警告。
檔案使用情況
其 files
指示開啟的檔案數或檔案描述符任務使用的檔案數。檔案使用率沒有SNMP陷阱,但超過限制時會生成系統日誌。
2013-May-28+14:16:18.746 [resmgr 14517 warning] [8/0/4440
_resource_cpu.c:3558] [software internal system syslog] The task cli-8031369 is over its open files limit. Allocated 2000, Using 2499
故障排除所需的資訊
本節介紹在需要進一步調查時,在開啟新的技術支援中心(TAC)服務請求之前需要收集哪些資訊。需要收集的日誌因使用型別而異。
附註:除了命令清單外,命令輸出 show support detail
始終是必需的。
CPU使用率
在StarOS CLI中輸入以下命令並捕獲輸出:
show task resources
show task resource max
show snmp trap history
show logs
show profile facility
instance
depth 4
附註:其 show profile
命令是隱藏模式CLI命令。
記憶體使用情況
在StarOS CLI中輸入以下命令並捕獲輸出:
show task resources
show task resource max
show snmp trap history
show logs
按固定間隔收集堆和系統堆命令多次,例如每15分鐘和四個輸出。
show messenger proclet facility
instance
heap
show messenger proclet facility
instance
system heap
附註:其 show messenger proclet
命令隱藏模式CLI命令。
檔案使用情況
在StarOS CLI中輸入以下命令並捕獲輸出:
show task resources
show task resource max
show snmp trap history
show logs