SNMP ENGINE プロセスが High CPU になる問題のトラブルシューティングに便利な Tool である snmp cpu-stats monitor
について説明します。この機能を使うと、どの MIB への Polling が原因で High CPU となっているかを調査することができます。
本機能は 12.3(23)BC10,12.2(33)SCD,12.2(33)SCC 以降の IOS で実装されています。
使用方法
まず、service internal を設定します。
uBR#conf t
Enter configuration commands, one per line. End with CNTL/Z.
uBR(config)#service internal
snmp cpu-stats monitor のスタート/ストップ/クリアーは EXEC CLI でおこないます。
- まずは show snmp を複数回取得し、SNMP ENGINE が高負荷であることを確認します。
- test snmp cpu-stats start コマンドでモニターを開始します。
- 5 分程度待ってから、show snmp cpu-stats コマンドでモニター結果を確認します。
- test snmp cpu-stats stop でモニターを停止します。
- 必要に応じてモニターの途中で clear snmp cpu-stats コマンドで収集した情報を一旦クリアすることができます。
モニター中は 5-10% 程度 CPU 使用率が増加することがあります。事前に確認のうえ実施してください。
作業が終了したら service internal を無効にしてください。
uBR#conf t
Enter configuration commands, one per line. End with CNTL/Z.
uBR(config)#no service internal
出力例
uBR#test snmp cpu-stats start
SNMP cpu stats is enabled!
uBR#show snmp cpu-stats
ADDR 5sec% 1min% 5min% Running(ms) Time(usecs) Invoked OID
1941BB4 0.00 0.00 0.00 0 11 2 system.1
1941BB4 0.00 0.00 0.00 0 3 2 system.2
1941BB4 0.00 0.00 0.00 0 1 2 sysUpTime
1941BB4 0.00 0.00 0.00 0 2 2 system.4
1941BB4 0.00 0.00 0.00 0 2 2 system.5
1941BB4 0.00 0.00 0.00 0 2 2 system.6
uBR#test snmp cpu-stats stop
SNMP cpu stats is disabled!
Running/Time/Invoked が多い OID に着目してください。これらの値が多い OID は、より多く Polling され、かつより多くの
CPU 時間を消費しているということになります。
対応策
もし問題となっている OID を特定できた場合は、snmp view でフィルターするか、意図しない NMS が Polling していないか確認してください。
snmp view の設定例
snmp-server view cutdown iso included
snmp-server view cutdown at excluded
snmp-server view cutdown ip.21 excluded
snmp-server view cutdown ip.22 excluded
snmp-server community view cutdown ro