简介
本文档介绍任务资源使用在StarOS中如何工作,并提供需要收集以排除CPU/内存/文件高使用率事件故障的日志列表。在StarOS上,资源管理子系统(resctrl / resmgr)为系统中的每个任务分配一组资源限制。它会监控每个任务的资源使用情况,以确保资源使用量保持在限制范围内。当任务超出其限制时,系统会生成系统日志或简单网络管理协议(SNMP)陷阱来通知网络操作。
资源监控机制
在StarOS上运行许多任务,例如sessmgr/aaamgr/vpnmgr等。每个任务都设置了CPU/内存/文件使用率限制,这些限制由资源管理监控。限制因任务类型(sessmgr和aamgr具有不同的限制)、StarOS版本和硬件类型而异。此外,限制由系统定义,用户不可配置。
在《系统管理指南》的StarOS任务一章中可以找到有关StarOS上每个任务的说明。
基本资源使用情况信息可在CLI命令的show task resources
输出中找到。

字段 |
描述 |
使用的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
以固定间隔多次收集heap和system heap命令,例如每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