はじめに
このドキュメントでは、Catalyst3650/ Catalyst3850 メモリ使用率の、show コマンドと SNMP ポーリングを用いた確認方法を紹介します。
**これらの情報による一次切り分け後に、さらなる原因追求のために新たな情報を追加でお願いする場合はありますのでご了承ください。**
事前に設定するコマンドについて
SNMP 経由で監視する前に機器で SNMP 設定を事前に投入する必要があります。
snmp-server community <password> ro
snmp-server host x.x.x.x <password>
メモリ使用状況の確認方法
show コマンドからの確認
3.xE Train 及び 16.x Train はそれぞれ下記コマンドより used memory と free memory が確認できます。
通常、メモリリークがあるか、Used量が増加し続けるかを確認するには、下記コマンドを定期的に取得し、複数回の結果を比較する必要があります。
バージョン 3.x E を利用する場合
#show processes memory sorted --> システム全体のメモリ使用状況を確認
System memory : 3931004K total, 1485844K used, 2445160K free, 221424K kernel reserved
Lowest(b) : 1808714736
PID Text Data Stack Heap RSS Total Process
10325 90684 36764 112 288 231772 390552 iosd
5846 10372 243508 92 992 190444 539576 fed
<snip>
#show processes memory detailed process iosd sorted --> IOSd 上動作している IOS 全般プロセスのメモリ使用状況を確認
Processor Pool Total: 536870912 Used: 171181596 Free: 365689316
IOS Proce Pool Total: 16777216 Used: 11012240 Free: 5764976
PID TTY Allocated Freed Holding Getbufs Retbufs Process
0 0 277730060 104854376 160891184 0 0 *Init*
0 0 0 0 984604 0 0 *MallocLite*
<snip
※IOSd は Linux カーネル上で動作する Cisco IOS デーモンです。IOSd 上で Classic IOS 全般のプロセスが動作しています。
バージョン 16.x を利用する場合
#show platform software status control-processor brief
<snip>
Memory (kB)
Slot Status Total Used (Pct) Free (Pct) Committed (Pct)
1-RP0 Healthy 3958028 2544852 (64%) 1413176 (36%) 3288040 (83%)
*メモリに関連のある部分のみ抜粋しています。
#show processes memory sorted --> IOSd 上動作している IOS 全般プロセスのメモリ使用状況を確認
Processor Pool Total: 886455648 Used: 318788992 Free: 567666656
lsmpi_io Pool Total: 6295128 Used: 6294296 Free: 832
PID TTY Allocated Freed Holding Getbufs Retbufs Process
0 0 309748936 45140504 242348368 0 0 *Init*
<snip>
#show processes memory platform sorted --> システム全体のメモリ使用状況を確認
System memory: 3958028K total, 2339848K used, 1618180K free,
Lowest: 1618180K
Pid Text Data Stack Dynamic RSS Total Name
--------------------------------------------------------------------------------
18443 286 405652 132 128612 405652 2677644 fed main event
30360 147803 624916 136 80 624916 1791424 linux_iosd-imag
<snip>
注:
・Total : ラインカードの合計メモリ
・Used:実際に使用済みメモリ
・Free: 使用可能なメモリ
・Committed: プロセスに割り当てられている仮想メモリ
※ Committed の値が上昇し続けると、実際の Used 値も上昇し続け、メモリ不足な状態に陥る可能性が高くなるため、16.x シリーズでは、できる限りCommitted 及び Used 量、両方とも監視してください。
SNMP ポーリングによる確認
Used memory/Free memory は、それぞれ下記の OID より確認可能です。
System Memory 確認
Object cpmCPUMemoryUsed
OID 1.3.6.1.4.1.9.9.109.1.1.1.1.12
Object cpmCPUMemoryFree
OID 1.3.6.1.4.1.9.9.109.1.1.1.1.13
Object cpmCPUMemoryCommitted -->16.x train 利用可
OID 1.3.6.1.4.1.9.9.109.1.1.1.1.27
注: 上記 OID で確認する値は下記コマンドの出力に対応します。
- show processes memory sorted (3.xE)
- show processes memory platform sorted (16.x)
- show platform software status control-processor brief (16.x)
IOSd Memory 確認
Object ciscoMemoryPoolUsed
OID 1.3.6.1.4.1.9.9.48.1.1.1.5
Object ciscoMemoryPoolFree
OID 1.3.6.1.4.1.9.9.48.1.1.1.6
注:
1. 上記 OID で確認する値は下記コマンドのUsed/Free出力に対応します。
- show processes memory detailed process iosd sorted (3.xE)
- show processes memory sorted (16.x)
2. 機器の稼働、Trafficの転送処理に伴い、Used/free サイズが動的に変化しているため、タイミングにより SNMP Polling で取得した値は show コマンドの出力と僅かな差がある場合があります。
SNMP Trap による確認
Catalyst 3650/Catalyst 3850 で Memory 使用量が閾値を超えた場合、SNMP Trap を送信する設定がありません。
16.x シリーズで閾値を超えた場合下記ログの出力がありますので、下記コマンドを追加しSyslogサーバーや Syslog 関連のTrap機能を利用することで、間接的に Memory アラーム有無を監視することができます。
-----出力例------
Used/Committed memory > 90% for warnings
%PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 91% exceeds warning level 90%
%PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 4/RP/0: Committed Memory value 93% exceeds warning level 90%
Used/Committed memory > 95% for critical errors
%PLATFORM-3-ELEMENT_CRITICAL:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 99% exceeds critical level 95%
%PLATFORM-3-ELEMENT_CRITICAL:Switch 1 R0/0: smand: 1/RP/0: Committed Memory value 96% exceeds critical level 95%
-----------------
追加設定例
----Logging Server利用---
logging host x.x.x.x
-------------------------
----Syslog Trap利用-----
logging snmp-trap 0 4
logging history informational
snmp-server enable traps syslog
-------------------------
参考情報
IOS-XE 3E Catalyst: Memory 関連の問題が発生した際に取得するログ
https://community.cisco.com/t5/-/-/ta-p/3841524
IOS-XE 16 Catalyst: Memory 関連の問題が発生した際に取得するログ
https://community.cisco.com/t5/-/-/ta-p/3843657