はじめに
このドキュメントでは、StarOSでのタスクのリソース使用率の仕組みについて説明し、CPU/メモリ/ファイルの高使用率イベントをトラブルシューティングするために収集する必要があるログのリストを示します。StarOSでは、リソース管理サブシステム(rectrl / resmgr)が、システム内の各タスクに対して一連のリソース制限を割り当てます。各タスクのリソース使用率を監視して、制限内に収まっていることを確認します。タスクが制限を超えると、SyslogまたはSimple Network Management Protocol(SNMP)トラップが生成され、ネットワーク動作が通知されます。
リソース監視メカニズム
StarOSでは、sessmgr/aaamgr/vpnmgrなど、多くのタスクが実行されます。各タスクには、CPU/メモリ/ファイルの使用量の制限が設定され、リソース管理によって制限が監視されます。制限は、タスクのタイプ(sessmgrとaamgrの制限は異なります)、StarOSバージョン、およびハードウェアのタイプによって異なる場合があります。また、制限はシステムによって定義され、ユーザは設定できません。
StarOSの各タスクの説明については、『システム管理ガイド』の「StarOSタスク」の章を参照してください。
基本的なリソースの使用状況に関する情報は、show task resources
CLIコマンドの出力で確認できます。

フィールド |
説明 |
使用されるCPU時間 |
タスクのCPU使用率 |
CPUTIMEのallc |
タスクに割り当てられたCPU使用率の制限 |
使用メモリ |
タスクのメモリ使用量 |
メモリ割り当て |
タスクに割り当てられたメモリ使用量の制限 |
使用されるファイル |
タスクのファイル使用状況 |
ファイルallc |
割り当てられたファイルのタスクの使用状況 |
ステータス |
タスクのステータス:良/警告/オーバー |
目的はリソースを常に監視することであり、タスクの機能を制限するものではないことを理解することが重要です。タスクは、制限を超えるCPU/メモリ/ファイルを消費した後でも動作できる必要があります。Syslogおよび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タスクの使用率が制限値に近いか制限値を超えている場合は、Syslog警告とともに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 %です。
Syslog
[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%
注:このSyslogは警告レベルであり、デフォルトのロギング設定では生成されません。これが生成される必要がある場合は、resmgrのロギング設定を警告として設定する必要があります。
メモリ使用量
メモリタスクの使用量が制限値に近いか制限値を超えている場合は、Syslog警告とともに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は、制限が66560定されている間89940メモリを消費します。
Syslog
[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
注:このSyslogは警告レベルであり、デフォルトのロギング設定では生成されません。これが生成される必要がある場合は、resmgrのロギング設定を警告として設定する必要があります。
ファイルの使用状況
files
は、開いているファイルの数、またはファイル記述子タスクが使用するファイルの数を示します。ファイルの使用量に対するSNMPトラップはありませんが、制限を超えるとSyslogが生成されます。
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
問題のトラブルシューティングに必要な情報
このセクションでは、さらなる調査が必要な場合に、新しいTechnical Assistance Center(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分ごと、出力4回)に複数回収集します。
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