2015-01-22 09:44 PM 2019-03-22 07:06 AM 更新
ASR1000 シリーズルータでは IOS-XE を採用しており、IOS-XE では Linux が動作し、その1つのプロセスとして IOS(IOSd) が動作しています。
そのため、ASR1000 シリーズルータでの Troubleshooting は通常の IOS とは異なる場合があります。
このドキュメントでは ASR1000 のメモリに関する Troubleshooting 方法と、問い合わせの多い既知の問題を紹介いたします。
ASR1000 シリーズルータでは以下のコマンド等を使用して Troubleshooting を行ってください。
----- システム全体 -----
show platform software status control-processor brief
----- RP Active -----
show platform software process slot RP active monitor cycles 1
show platform software process list RP active sort memory
show platform software process list RP process-id <Linux PID>
show platform software memory messaging chassis-manager RP active | exclude diff:0
show platform software memory messaging emd RP active | exclude diff:0
show platform software memory messaging forwarding-manager RP active | exclude diff:0
show platform software memory messaging host-manager RP active | exclude diff:0
show platform software memory messaging interface-manager RP active | exclude diff:0
show platform software memory messaging ios RP active | exclude diff:0
show platform software memory messaging logger RP active | exclude diff:0
show platform software memory messaging pluggable-services RP active | exclude diff:0
show platform software memory messaging shell-manager RP active | exclude diff:0
----- FP Active -----
show platform software process slot FP active monitor cycles 1
show platform software process list FP active sort memory
show platform software process list FP active process-id <Linux PID>
show platform software memory messaging chassis-manager FP active | exclude diff:0
show platform software memory messaging emd FP active | exclude diff:0
show platform software memory messaging forwarding-manager FP active | exclude diff:0
show platform software memory messaging host-manager FP active | exclude diff:0
show platform software memory messaging logger FP active | exclude diff:0
show platform software memory messaging shell-manager FP active | exclude diff:0
----- QFP active -----
show platform software memory messaging qfp-control-process qfp active | exclude diff:0
show platform software memory messaging qfp-driver qfp active | exclude diff:0
show platform software memory messaging qfp-ha-server qfp active | exclude diff:0
show platform software memory messaging qfp-service-process qfp active | exclude diff:0
----- SIP 0 -----
show platform software process slot 0 monitor cycles 1
show platform software process list 0 sort memory
show platform software process list 0 process-id <Linux PID>
show platform software memory messaging chassis-manager 0 | exclude diff:0
show platform software memory messaging emd 0 | exclude diff:0
show platform software memory messaging host-manager 0 | exclude diff:0
show platform software memory messaging interface-manager 0 | exclude diff:0
show platform software memory messaging shell-manager 0 | exclude diff:0
----- SIP 1 -----
show platform software process slot 1 monitor cycles 1
show platform software process list 1 sort memory
show platform software process list 1 process-id <Linux PID>
show platform software memory messaging chassis-manager 1 | exclude diff:0
show platform software memory messaging emd 1 | exclude diff:0
show platform software memory messaging host-manager 1 | exclude diff:0
show platform software memory messaging interface-manager 1 | exclude diff:0
show platform software memory messaging logger 1 | exclude diff:0
show platform software memory messaging shell-manager 1 | exclude diff:0
----- SIP 2 -----
show platform software process slot 2 monitor cycles 1
show platform software process list 2 sort memory
show platform software process list 2 process-id <Linux PID>
show platform software memory messaging chassis-manager 2 | exclude diff:0
show platform software memory messaging emd 2 | exclude diff:0
show platform software memory messaging host-manager 2 | exclude diff:0
show platform software memory messaging interface-manager 2 | exclude diff:0
show platform software memory messaging logger 2 | exclude diff:0
show platform software memory messaging shell-manager 2 | exclude diff:0
----- SPA -----
show platform software memory messaging ios 0/0 | exclude diff:0
show platform software memory messaging ios 0/1 | exclude diff:0
show platform software memory messaging ios 0/2 | exclude diff:0
show platform software memory messaging ios 0/3 | exclude diff:0
show platform software memory messaging ios 1/0 | exclude diff:0
show platform software memory messaging ios 1/1 | exclude diff:0
show platform software memory messaging ios 1/2 | exclude diff:0
show platform software memory messaging ios 1/3 | exclude diff:0
show platform software memory messaging ios 2/0 | exclude diff:0
show platform software memory messaging ios 2/1 | exclude diff:0
show platform software memory messaging ios 2/2 | exclude diff:0
show platform software memory messaging ios 2/3 | exclude diff:0
*<Linux PID>には以下のコマンドで異常なプロセスが確認できた場合に、その PID を指定してください。
show platform software process <slot> monitor cycles 1
show platform software process list <slot>
*ASR1000 シリーズルータでも IOSd の問題であれば、Troubleshooting 方法は基本的には通常の IOS ルータと同様です。
通常の IOS ルータの Troubleshooting については以下の Webcast を参考にして頂ければと思います。
2013/11/5 Webcast 「Cisco IOS Router のMemory/Buffer に関するTroubleshooting 方法の紹介」
資料 : https://supportforums.cisco.com/ja/document/11938326
録画 : https://supportforums.cisco.com/ja/video/12061591
上記に示したコマンド等を簡単に解説します。
■show platform software status control-processor brief
「show platform software status control-processor brief」を使用して、ASR1000 シリーズルータの各Cardのメモリの状態を確認してください。
Status、Free、Committed の値が異常でないかご確認ください。
以下に「show platform software status control-processor brief」の出力の一部を示します。
*メモリに関連のある部分のみ抜粋しています。
Router#show platform software status control-processor brief --- snip --- Memory (kB) Slot Status Total Used (Pct) Free (Pct) Committed (Pct) RP0 Healthy 3874984 1616412 (42%) 2258572 (58%) 2527016 (65%) ESP0 Healthy 3877064 625740 (16%) 3251324 (84%) 2990496 (77%) SIP0 Healthy 449784 306268 (68%) 143516 (32%) 311208 (69%) --- snip --- |
各カードの Memory 使用率等を出力します。
・Slot : Slot を表示します。
・Status : Status を表示。Healthy, Warning, Critical がある。
・Total : ラインカードの合計メモリ
・Used (Pct) : Used:使用済みメモリ
・Free (Pct) : 使用可能なメモリ
・Committed (Pct) : プロセスに割り当てられている仮想メモリ
■show platform software process slot <slot> monitor cycles 1
「show platform software status control-processor brief」の Status、Free、Committed のいづれかの値に異常があれば、
「show platform software process slot <slot> monitor cycles 1」を取得して物理メモリや仮想メモリを多く保持しているプロセスを確認してください。
「show platform software process slot <slot> monitor cycles 1」は linux の top コマンドのスナップショットを取得し出力します。
以下に出力の一部を示します。
Router#show platform software process slot R0 monitor cycles 1 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND |
22:48:24 : 現在時刻
up 8 days : システム稼働時間
users : ログインユーザ数
load average : 平均負荷(左から 1分間、5分間、15分間)
total : タスクの合計数
running : 稼働中のタスク数
sleeping : 待機中のタスク数
stopped : 停止タスク数
zombie : ゾンビタスク数
us : ユーザプロセスの使用時間の割合
sy : システムプロセスの使用時間の割合
ni : 実行優先度を変更したユーザプロセスの使用時間の割合
id : アイドル状態の時間の割合
wa : I/Oの終了待ちをしている時間の割合
hi : ハードウェア割込み要求での使用時間の割合
si : ソフトウェア割込み要求での使用時間の割合
st : バーチャルマシンに使用された時間の割合
Mem : total : メモリ合計量
Mem : used : 使用中のメモリ量
Mem : free : 未使用のメモリ量
Mem : buffers : バッファに使用されているメモリ量
Swap : total : スワップ領域の合計量
Swap : used : 使用中のスワップ領域
Swap : free : 未使用のスワップ領域
Swap : cached : キャッシュされているスワップ領域
PID : プロセスID
USER : プロセスを実行しているユーザ
PR : 優先度
NI : 相対的優先度(-20(優先度最高)~19(優先度最低)の範囲)
VIRT : プロセスの仮想メモリサイズ(スワップアウトしたメモリ使用量を加えたメモリ量)
RES : プロセスが使用している物理(スワップされていない)メモリサイズ
SHR : プロセスが使用している共有メモリ
S : プロセスの状態 : S スリープ状態, T 停止中, D 割り込み不可, N ナイス値がプラスの状態, < ナイス値がマイナスの状態, R 実行中, Z ゾンビ状態, W スワップアウト状態
%CPU : CPU使用率
%MEM : 実メモリ使用率
TIME+ : プロセスの実行時間(秒)
COMMAND : 現在実行中のコマンド名(プロセス名)
■monitor platform software process <slot>
「monitor platform software process <slot>」を実行すると linux の top コマンドを実行します。
このコマンドを実行するには以下の設定が必要です。
Router#terminal terminal-type VT100 |
こちらのコマンドは特権モードから抜けると無効になるので、設定を元に戻す操作などは特に必要はありません。
また、このコマンドを実行してもその他の機能への影響はありません。コマンドを実行するために必要なコマンドとお考えください。
「monitor platform software process <slot>」の出力は「show platform software process slot <slot> active monitor cycles 1」と同様です。
「monitor platform software process <slot>」は linux の top コマンドをそのまま実行しているので画面がロックされることと、表示が5秒おきに切り替わります。
そのため「show platform software process slot rp active monitor cycles 1」に比べるとログ取得の観点から言えば少し使い勝手が悪いです。
ですので、基本的には「show platform software process slot rp active monitor cycles 1」をご使用ください。
「monitor platform software process <slot>」では Shift + p でCPU使用率順、Shift + m でメモリ使用率順にソートをすることが可能です。
また、「Shift + o」で次のような画面が表示されます。ソートしたい項目をアルファベットで指定し、「Enter」で決定すると指定した項目でソートされます。
nt Sort Field: K for window 1:Def a: PID = Process Id v: nDRT = Dirty Pages count |
基本的には「show platform software process slot <slot> active monitor cycles 1」をご使用頂き、
特定の項目でソートを行いたいようなときには「monitor platform software process <slot>」を使用すれば良いと思います。
■show platform software process list <slot> sort memory
show platform software process list <slot> sort memory を使用して仮想メモリサイズの大きなプロセスがないか確認してください。
以下に show platform software process list <slot> sort memoryの出力例を示します。
Router#show platform software process list RP active sort memory |
・Name : プロセス名
・Pid : プロセスID
・PPid : 親プロセスID
・Group Id : プロセスグループリーダーとなっているプロセスのプロセスID
・Status : S スリープ状態, T 停止中, D 割り込み不可(sleep), N ナイス値がプラスの状態, < ナイス値がマイナスの状態, R 実行中, Z ゾンビ状態, W スワップアウト状態
・Priority : プライオリティ。watchdog が一番優先され、それ以外は値が小さいものが優先される。
・Size : プロセスが使用している仮想メモリサイズ(byte)
■show platform software process list <slot> name <Linux Process Name>
以下のコマンドなどで異常なプロセスが確認出来た場合はこのコマンドで詳細を確認してください。
-show platform software process slot <slot> active monitor cycles 1
-monitor platform software process <slot>
-show platform software process list <slot>
以下に出力例を示します。
Router#show platform software process list RP active name linux_iosd-imag |
■show platform software process list <slot> process-id <Linux PID>
以下のコマンドなどで異常なプロセスが確認出来た場合はこのコマンドで詳細を確認してください。
-show platform software process slot <slot> active monitor cycles 1
-monitor platform software process <slot>
-show platform software process list <slot>
以下に出力例を示します。
Router#show platform software process list RP active process-id 25435 |
■show platform software memory messaging
show platform software memory messaging を使用して memory leak が発生していないか確認します。
diff の値が 100 以上のものがあればメモリリークの疑いがあります。
以下に実際にメモリリークが発生している例を示します。
(CSCto03123 に該当している場合の例)
Router#show platform software memory messaging chassis-manager 0 | i cm_slot|cm_heartbeat |
created : メモリを割り当てた回数
destroyed : メモリを開放した回数
diff : created と destroyed の差分
上記出力より created の値は 10000 を超える値ですが destroyed の値が 0 になっており、割り当てられたメモリが開放されていません。メモリリークが発生しています。
IOS(IOSd) の問題であれば ASR1000 シリーズルータでも Troubleshooting 方法は通常の IOS ルータと基本的には同様です。
IOS ルータのメモリ関連の問題の Troubleshooting 方法は以下の Webcast で解説を行っているので参照頂ければと思います。
2013/11/5 Webcast 「Cisco IOS Router のMemory/Buffer に関するTroubleshooting 方法の紹介」
資料 : https://supportforums.cisco.com/ja/document/11938326
録画 : https://supportforums.cisco.com/ja/video/12061591
IOSd の問題か、その他の Linux のプロセスの問題かは「show platform software process slot RP active monitor cycles 1」を取得し、
linux_iosd-imag で問題が起きているかどうか確認してください。
Router#show platform software process slot <slot> active monitor cycles 1 |
linux_iosd-imag のプロセスに問題があれば、IOS の問題です。
通常の IOS と同様の Troubleshooting を行ってください。
Memory に関する既知の問題の中で問い合わせの多いものを紹介します。
現在 TAC にお問い合わせを頂く ASR1000 の Memory 関連の問題は以下の4つの不具合のいずれか、または、複数に該当していることが多いです。
■CSCto03123 cman-fp/cman-cc slow memory leak is seen
この問題は RP と ESP 間、および、RP と SIP 間の死活監視のための heartbeat に使用されたメモリを開放しないことによって発生します。
heartbeat は10秒間隔でおこなわれていて、以下のコマンドで確認可能です。
該当 version であれば 10秒おきに diff の値が増加していることが確認可能です。
Router#show platform software memory messaging chassis-manager 0 | i cm_slot|cm_heartbeat |
heartbeat は10秒おきに常に行われているので、該当version であればこの問題は必ず発生します。
1日にリークするメモリ量は 130 バイト程度ですので、空きメモリ量にもよりますが、この問題でメモリが枯渇するまでにはシステム稼動から数年程度の時間がかかります。
そのため、システム稼動直後に大きな問題が発生するわけではありませんがシステム稼動から数年後にメモリが枯渇することになります。
この問題の修正versionは以下の version および、それ以降の version となります。
・03.04.00 / 15.1(3)S
・03.03.01 / 15.1(2)S1
・03.02.02 / 15.1(1)S2
・03.01.04 / 15.0(1)S4
■CSCti51325 ESP Committed memory calculation/threshold calculations appear spurious
この問題に該当していると以下のようなメッセージが出力されます。
%PLATFORM-4-ELEMENT_WARNING: R0/0: smand: ESP/0: Committed Memory value 314% exceeds warning level 300% |
こちらは一部のプロセスによるメモリの要求方法に問題があり、committed memory の計算が正しくない状態になることがありますがルータの機能には影響ありません。
該当 version を使用していて ESP の Committed の値が 300% を超えていていればこの不具合に該当していると考えられます。
以下にこの不具合の発生時の「show platform software status control-processor brief 」の出力例を示します。
Router#show platform software status control-processor brief --- snip --- Memory (kB) Slot Status Total Used (Pct) Free (Pct) Committed (Pct) --- snip --- ESP0 Warning 969568 725992 (75%) 243576 (25%) 3032528 (313%) --- snip --- |
この問題の修正versionは以下の version および、それ以降の version となります。
・03.03.00 / 15.1(2)S
・03.02.01 / 15.1(1)S1
・03.01.03 / 15.0(1)S3
■CSCtj47922 RLS33: %PLATFORM-4-ELEMENT_WARNING: R1/0: smand: SIP/0: Committed Memor
この問題に該当していると以下のようなメッセージが出力されます。
%PLATFORM-4-ELEMENT_WARNING: R1/0: smand: SIP/0: Committed Memory value 100% exceeds warning level 95% |
この問題は SIP を使用した際に必要以上にメモリを要求してしまうことが原因です。
メモリを要求するだけで実際にメモリを使用する訳ではないので、表示上のみの問題となります。
Router#show platform software status control-processor brief |
この問題の修正versionは以下の version および、それ以降の version となります。
・03.02.00 / 15.1(01)S
・03.01.03 / 15.0(01)S03
■CSCto82630 CC/SPA package modification to reduce SIP 10 memory usage
この問題に該当していると以下のようなメッセージが出力されます。
%PLATFORM-4-ELEMENT_WARNING: R1/0: smand: SIP/0: Committed Memory value 100% exceeds warning level 95% |
この問題は SIP を使用した際に必要以上にメモリを要求してしまうことが原因です。
メモリを要求するだけで実際にメモリを使用する訳ではないので、表示上のみの問題となります。
Router#show platform software status control-processor brief |
この問題の修正versionは以下の version および、それ以降の version となります。
・03.04.00 / 15.1(3)S
・03.03.01 / 15.1(2)S1
CSCtj47922 と CSCto82630 については見え方が同様でコマンド等でどちらに該当しているか明確に区別する方法がありません。
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます