シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ASR1000 シリーズルータの Memory に関する Troubleshooting と既知の問題について

    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
    top - 22:48:24 up 8 days,  7:02,  0 users,  load average: 0.08, 0.07, 0.01
    Tasks: 128 total,   4 running, 124 sleeping,   0 stopped,   0 zombie
    Cpu(s):  4.2%us,  2.5%sy,  0.0%ni, 93.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:   3874984k total,  1631024k used,  2243960k free,   122276k buffers
    Swap:        0k total,        0k used,        0k free,   979512k cached

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
    23447 root      20   0  2648 1144  876 R  1.9  0.0   0:00.01 top                
        1 root      20   0  2156  640  552 S  0.0  0.0   0:02.49 init               
        2 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 kthreadd           
        3 root      15  -5     0    0    0 S  0.0  0.0   0:01.44 ksoftirqd/0        
        4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0         
        5 root      15  -5     0    0    0 S  0.0  0.0   0:12.04 events/0           
        6 root      15  -5     0    0    0 S  0.0  0.0   0:00.03 khelper            
    --- snip ---

     

    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
    Select sort field via field letter, type any other key to return

      a: PID        = Process Id              v: nDRT       = Dirty Pages count
      b: PPID       = Parent Process Pid      w: S          = Process Status
      c: RUSER      = Real user name          x: COMMAND    = Command name/line
      d: UID        = User Id                 y: WCHAN      = Sleeping in Function
      e: USER       = User Name               z: Flags      = Task Flags <sched.h>
      f: GROUP      = Group Name
      g: TTY        = Controlling Tty       Note1:
      h: PR         = Priority                If a selected sort field can't be
      i: NI         = Nice value              shown due to screen width or your
      j: P          = Last used cpu (SMP)     field order, the '<' and '>' keys
    * K: %CPU       = CPU usage               will be unavailable until a field
      l: TIME       = CPU Time                within viewable range is chosen.
      m: TIME+      = CPU Time, hundredths
      n: %MEM       = Memory usage (RES)    Note2:
      o: VIRT       = Virtual Image (kb)      Field sorting uses internal values,
      p: SWAP       = Swapped size (kb)       not those in column display.  Thus,
      q: RES        = Resident size (kb)      the TTY & WCHAN fields will violate
      r: CODE       = Code size (kb)          strict ASCII collating sequence.
      s: DATA       = Data+Stack size (kb)    (shame on you if WCHAN is chosen)
      t: SHR        = Shared Mem size (kb)
      u: nFLT       = Page Fault 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    PPid  Group Id  Status    Priority  Size        
    ------------------------------------------------------------------------------
    linux_iosd-imag        25435   24099     25435  R               20  1998200832  
    fman_rp                23529   22416     23529  S               20  107819008   
    smand                  27757   26302     27757  R               20  100016128   
    automount              14308       1     14308  S               20  31543296    
    cmand                  22840   21805     22840  S               20  28762112    
    imand                  24657   23286     24657  S               20  27930624    
    psd                    27101   25590     27101  S               20  21151744    
    emd                    23105   22068     23105  S               20  20819968    
    hman                   24224   22923     24224  R               20  17645568    
    plogd                  26599   25148     26599  S               20  17276928    
    rotee                  21733       1     21732  S               20  8519680      
    --- snip ---

     

    ・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
    Name: linux_iosd-imag
      Process id       : 25435
      Parent process id: 24099
      Group id         : 25435
      Status           : R
      Session id       : 21418
      User time        : 12446949
      Kernel time      : 4279680
      Priority         : 20
      Virtual bytes    : 1998200832
      Resident pages   : 116834
      Resident limit   : 4294967295
      Minor page faults: 116584
      Major page faults: 1655

     


    ■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
    Name: linux_iosd-imag
      Process id       : 25435
      Parent process id: 24099
      Group id         : 25435
      Status           : R
      Session id       : 21418
      User time        : 12450472
      Kernel time      : 4280940
      Priority         : 20
      Virtual bytes    : 1998200832
      Resident pages   : 116834
      Resident limit   : 4294967295
      Minor page faults: 116584
      Major page faults: 1655

     


    ■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   
    [cm_common] enum cm_slot/36aacf147948da6f0b98b58fb75c171b/0 created:10079 destroyed:0 diff:10079
    [cm_oir] message cm_heartbeat/701714127c8fe4259d164ce22ed416bd/0 created:10079 destroyed:0 diff:10079
    Router#show platform software memory messaging chassis-manager F0 | i cm_slot|cm_heartbeat
    [cm_common] enum cm_slot/36aacf147948da6f0b98b58fb75c171b/0 created:10110 destroyed:20 diff:10090
    [cm_oir] message cm_heartbeat/701714127c8fe4259d164ce22ed416bd/0 created:10090 destroyed:0 diff:10090

     

    created : メモリを割り当てた回数
    destroyed : メモリを開放した回数
    diff : created と destroyed の差分

    上記出力より created の値は 10000 を超える値ですが destroyed の値が 0 になっており、割り当てられたメモリが開放されていません。メモリリークが発生しています。

     

    • IOS(IOSd) の問題か、その他の Linux プロセスの問題かの区別

    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
    --- snip ---
    25523 root      20   0 1905m 490m 126m R  1.7 13.0  11:38.84 linux_iosd-imag    
    --- snip ---

     

    linux_iosd-imag のプロセスに問題があれば、IOS の問題です。
    通常の IOS と同様の Troubleshooting を行ってください。

    • Memory に関する既知の問題

    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   
    [cm_common] enum cm_slot/36aacf147948da6f0b98b58fb75c171b/0 created:10079 destroyed:0 diff:10079
    [cm_oir] message cm_heartbeat/701714127c8fe4259d164ce22ed416bd/0 created:10079 destroyed:0 diff:10079
    Router#show platform software memory messaging chassis-manager F0 | i cm_slot|cm_heartbeat
    [cm_common] enum cm_slot/36aacf147948da6f0b98b58fb75c171b/0 created:10110 destroyed:20 diff:10090
    [cm_oir] message cm_heartbeat/701714127c8fe4259d164ce22ed416bd/0 created:10090 destroyed:0 diff:10090

     

    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
    --- snip ---
    Memory (kB)
     Slot  Status    Total     Used (Pct)     Free (Pct) Committed (Pct)
    --- snip ---
     SIP0 Warning   449776   414988 (92%)    34788 ( 8%)    449920 (100%)
    --- snip ---

     

    この問題の修正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
    --- snip ---
    Memory (kB)
     Slot  Status    Total     Used (Pct)     Free (Pct) Committed (Pct)
    --- snip ---
     SIP0 Warning   449776   414988 (92%)    34788 ( 8%)    449920 (100%)
    --- snip ---

     

    この問題の修正versionは以下の version および、それ以降の version となります。

    ・03.04.00 / 15.1(3)S
    ・03.03.01 / 15.1(2)S1

     

    CSCtj47922CSCto82630 については見え方が同様でコマンド等でどちらに該当しているか明確に区別する方法がありません。

     

    バージョン履歴
    改訂番号
    2/2
    最終更新:
    ‎09-01-2017 04:17 PM
    更新者:
     
    ラベル(1)
    寄稿者: