キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

IOS Router : CPU 使用率の高騰時に取得するログ

     

     


     

    IOS Router にて CPU 使用率が高騰した場合に取得するログなどを記載しています。

     

     

     



    ログ取得前に事前に設定頂きたいコマンド

     

    ログを取得する場合は以下の Link に記載されている設定を行ったうえでログをご取得ください。

    IOS/IOS-XE Router でログ取得前に事前に設定頂きたいコマンド

     

     



    show コマンド

     

    IOS Router にて CPU 使用率が高騰した場合には事象発生中に以下のコマンドを複数回ご取得ください。

     

     

    show processes cpu sorted

    show stacks

    show stacks <PID>

    show buffers

    show interfaces

    show interfaces accounting

    show interfaces stats

    show interfaces switching

    show controllers

    show ip traffic

    show ip traffic interface <Interface>

    show ip spd

    show ipv6 traffic

    show ipv6 traffic interface <Interface>

    show ipv6 spd

    show platform

    show platform interrupt *ISR G2 のみのコマンドとなります。

    show tech-support

    show log

     

    show tech-support は多少CPUに負荷がかかります。

     

    • <PID> の部分には show processes cpu sorted で CPU 使用率が上昇している Process の PID を確認して、PID を入力してください。

     

     

    Router#show processes cpu sorted
    CPU utilization for five seconds: 81%/0%; one minute: 3%; five minutes: 1%
     PID Runtime(ms)     Invoked      uSecs   5Sec   1Min   5Min TTY Process
      88       12660       71555        176 80.31%  1.62%  0.33%   0 IP Input         
     101        3880        1508       2572  0.39%  0.07%  0.01%   0 Exec 

     

    この例であれば、IP Input の CPU 使用率が上昇していて PID が 88 なので show stacks 88 と入力してください。

     

    • <interface> には関連する interface を入力してください。不明であれば全ての Interface を入力頂ければと思います。
    • show ipv6 ... のコマンドは IPv6 使用時のみご取得ください。

     

     



    CPU Profile

     

    CPU Profile は IOS のどの領域が多く呼ばれているのかを確認する機能となります。CPU 使用率が高騰している際に取得することで、どういった処理によって CPU 使用率が上昇しているのかを確認することが可能です。

    *CPU Profile は一時的に CPU に負荷をかけますのでご注意ください。

    *CISCO3925E/K9, CISCO3945E/K9 では CPU Profile を実施できません。

     

    CPU Profile は以下の手順で実施してください。

     

     

    Step1: show region で IOS がロードされたアドレス空間を確認します。

    main:text が IOS がロードされたアドレス空間です。
    main:text の Start と End の値を確認してください。

     

     

    Router#show region

    Load for five secs: 98%/48%; one minute: 98%; five minutes: 98%

    Time source is hardware calendar, *00:04:31.647 UTC Wed Apr 15 2015

    Region Manager:

         Start         End     Size(b) Class Media Name

    0x1E700000 0x1FFFFFFF   26214400 Iomem R/W   iomem

    0x80000000 0x9E6FFFFF   510656512 Local R/W   main

    0x80020110 0x86136333   101802532 IText R/O   main:text

    0x86136334 0x8878576F   40170556 IData R/W   main:data

    0x88785770 0x89326A2F   12194496 IBss   R/W   main:bss

    0x89326A30 0x9E6FFFFF   356357584 Local R/W   main:heap

     

     



    Step2: profile <start> <end> <num> でCPU Profile の設定

    Step1 で確認したアドレス情報を元に CPU Profile の設定を行います。

    profile <start> <end> <num> を入力します。

    <Start> <End> に入力するアドレスには 0x は不要です。

    <num> の部分は通常は 4 を入力してください。

     

    Router(config)#profile 80020110 86136333 4

     

    もし <num> に 4 を入力した際に %PROFILE: Insufficient memory と Error が出力された場合は、8, 16, 32 と順番に試し、Error が出力されない出来るだけ小さい値を入力してください。

     



    Step3: profile start で CPU Profile の取得開始

    profile start CPU Profile の取得を開始します。

    このコマンドは隠コマンのためご注意ください。TABでの補完が効きません。

     

    Router#profile start

     

     



    Step4: 1分ほど経過したら profile stop で profile 取得終了

    profile stop CPU Profile の取得を終了します。

    Step5: 以下のコマンドを取得

     

    Router#show processes cpu sorted

    Router#show profile terse

     

     



    Step6: clear profile で情報をクリアします。

     

    Router#profile clear

     

     

     

     


    Step7: Step3 ~6 の step を複数回繰り返します。

     

     

    Step8: no profile <start> <end> <num> で設定をクリアします。

     

    Router(config)#no profile 80020110 86136333 4

     

     

     

    なお show profile terse の出力は以下のようなものになります。

     

    Router#show profile terse
    PROF 80020110 86136333 4
    PROFSKIP 80024F30
     0 0 26 0 16 111 0 36
     0 16 0 48 0 20 18 17
     14 18 18 41 40 0 0 0
     0 19 89 17 18 0 22 25
     26 19 20 0 0 0 0 0
    PROFSKIP 80025810
     0 0 0 10 4 0 22 11
     8 7 9 18 18 14 0 0
    PROFSKIP 8002F330
     0 0 0 0 0 1 0 0
    PROFSKIP 80033A70
     0 0 1 0 0 0 0 0
    PROFSKIP 8003ED30
     0 0 0 0 0 1 0 0
    --- snip ---

     

     

     



    こ の出力を decode することで、profile start から profile stop までの間にどのような処理が多く発生していたかが確認可能です。残念ながら社外の方は decode を実施することは出来ませんので TAC への問い合わせ時にログをご送付頂ければと思います。

     

     

     



     

    SPROFILE

     

     

    CISCO3925E/K9 と CISCO3945E/K9 では CPU Profile を実施することが出来ません。代わりに CISCO3925E/K9 と CISCO3945E/K9 には SPROFILE という機能が実装されています。CISCO3925E/K9 と CISCO3945E/K9 では CPU Profile の代わりに SPROFILE を取得してください。

     

     

    Step1: Start Profiling
    事象発生時に以下のコマンドにて SPROFILE を開始してください。

    Router#sprofiler start 0 10000

     

     

     

     



    Step2: Stop Profiling
    以下のコマンドにて SPROFILE を停止してください。

    Router#sprofiler stop

     

     

     

     

     



    Step3: SPROFILE の結果を flash に保存してください。
    以下のコマンドにて SPROFILE の結果を保存してください。

    Router#sprofiler save flash:sprof.txt

     

     

     

     

     



    Step4: 保存された SPROFILE の結果を TFTP 等で取得してください。

    Router#copy flash:sprof.txt tftp:



     


    なお、SPROFILE も CPU Profile と同様に社外の方が decode を実施することは出来ませんので TAC への問い合わせ時にログをご送付頂ければと思います。

     

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