キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
4787
閲覧回数
6
いいね!
0
コメント
ykanme
Cisco Employee
Cisco Employee

IOS-XR において、パフォーマンス限界や、S/W 不具合等で CPU 使用率の高騰が発生した際、CPU 使用率が 25% や 50% 前後で固定された状態が継続する場合があります。

この症状は、IOS-XR がマルチコア CPU をサポートしており、多くのモジュールでマルチコア CPU が使用されていることに起因します。
※マルチコア CPU の場合でも、状況によっては 100% の CPU 使用率(High CPU) になることがあります。


CPU 使用率の確認方法と例

コマンドの実行例

パターン1(負荷なしの例)

RP/0/RP0/CPU0:XR#show processes cpu | inc util
CPU utilization for one minute: 1%; five minutes: 1%; fifteen minutes: 1%


パターン2 (100% の負荷が発生した例)

RP/0/RP0/CPU0:XR#show processes cpu | inc util
CPU utilization for one minute: 100%; five minutes: 76%; fifteen minutes: 26%


パターン3 (50% の負荷が発生した例)

RP/0/RP0/CPU0:XR#show processes cpu | inc util
CPU utilization for one minute: 50%; five minutes: 50%; fifteen minutes: 34%


パターン4(25% の負荷が発生した例)

RP/0/RP0/CPU0:XR#show processes cpu | inc util
CPU utilization for one minute: 25%; five minutes: 25%; fifteen minutes: 22%

 

IOS-XR では、各プロセスの中にスレッドがあり、各スレッドが別の CPU コア上で動作しています。
以下の例では、4コア CPU の RP 上で動作する BGP プロセスの状況を show processes コマンドを使用して確認しています。TID の値から、 BGP プロセスの中に23個のスレッドが存在することが確認できます。CPU の値からは、各スレッドが 0~3 の 4 つのコアに振り分けられて動作していることが分かります。

BGP プロセスの詳細情報

コマンドの実行例

RP/0/RSP0/CPU0:ASR9K#show processes bgp detail
                  Job ID: 1049 << スレッドの名前を確認する際に使用します
                     PID: 573758
         Executable path: /disk0/iosxr-routing-4.3.1/0x100000/bin/bgp
<snip>

JID   TID CPU Stack pri state        TimeInState    HR:MM:SS:MSEC   NAME
1049   1    1  392K  10 Receive        0:00:12:0222    0:00:00:0347 bgp
1049   2    0  392K  10 Receive      359:12:28:0410    0:00:00:0000 bgp
1049   3    2  392K  10 Receive      359:12:28:0392    0:00:00:0000 bgp
1049   4    3  392K  10 Receive        0:00:03:0906    0:00:00:0017 bgp
1049   5    1  392K  10 Receive      359:12:18:0812    0:00:00:0000 bgp
1049   6    2  392K  10 Sigwaitinfo  359:12:19:0701    0:00:00:0000 bgp
1049   7    3  392K  10 Receive        0:01:49:0982    0:00:00:0002 bgp
1049   8    2  392K  10 Receive        0:00:58:0570    0:00:00:0607 bgp
1049   9    1  392K  10 Receive        0:00:49:0977    0:00:00:0006 bgp
1049   10   3  392K  10 Nanosleep      0:00:00:0567    0:00:00:0044 bgp
1049   11   3  392K  10 Receive        0:00:49:0977    0:00:00:0011 bgp
1049   12   3  392K  10 Receive        0:00:02:0636    0:00:43:0721 bgp
1049   13   3  392K  10 Receive        0:00:00:0600    0:00:44:0163 bgp
1049   14   2  392K  10 Receive        0:00:58:0557    0:00:00:0012 bgp
1049   15   1  392K  10 Receive        0:00:58:0564    0:00:00:0007 bgp
1049   16   3  392K  10 Receive        0:00:50:0013    0:00:00:0003 bgp
1049   17   1  392K  10 Receive        0:00:50:0004    0:00:00:0001 bgp
1049   18   3  392K  10 Receive        0:00:58:0120    0:00:00:0010 bgp
1049   19   3  392K  10 Receive        0:00:08:0833    0:00:21:0598 bgp
1049   20   2  392K  10 Receive      359:11:28:0520    0:00:00:0000 bgp
1049   21   2  392K  10 Receive        0:00:00:0805    0:00:00:0006 bgp
1049   22   1  392K  10 Receive        0:00:49:0978    0:00:00:0000 bgp
1049   23   2  392K  10 Receive      359:09:55:0658    0:00:00:0005 bgp

 

BGP プロセスの各スレッドの名前は show processes threadname <jid> にて確認できます。
※jid は show processes コマンドで確認できる Job Id を指定します。

BGP プロセスの各スレッドの名前

コマンドの実行例

RP/0/RSP0/CPU0:ASR9K#show processes bgp threadname 1049 << show processes bgp で確認した jid を指定

JID    TID  ThreadName      pri state      TimeInState     NAME
1049   1    bgp-io-control  10 Receive        0:00:06:0598 bgp
1049   2    cdm_evm_thread  10 Receive      359:21:47:0206 bgp
1049   3                    10 Receive      359:21:47:0188 bgp
1049   4    bgp-rpki        10 Receive        0:00:02:0590 bgp
1049   5    spp_nsr_client_conn_monitor 10 Receive      359:21:37:0608 bgp
1049   6                    10 Sigwaitinfo  359:21:38:0497 bgp
1049   7    bgp-label       10 Receive        0:01:08:0769 bgp
1049   8    bgp-mgmt        10 Receive        0:00:17:0357 bgp
1049   9    bgp-rib-upd-0   10 Receive        0:00:08:0764 bgp
1049   10   lspv_lib BGPv4  10 Nanosleep      0:00:04:0253 bgp
1049   11   bgp-rib-upd-1   10 Receive        0:00:08:0764 bgp
1049   12   bgp-io-read     10 Receive        0:00:01:0332 bgp
1049   13   bgp-io-write    10 Receive        0:00:01:0332 bgp
1049   14   bgp-router      10 Receive        0:00:17:0344 bgp
1049   15   bgp-import      10 Receive        0:00:17:0351 bgp
1049   16   bgp-upd-gen     10 Receive        0:00:08:0800 bgp
1049   17   bgp-sync-active 10 Receive        0:00:08:0791 bgp
1049   18   bgp-crit-event  10 Receive        0:00:16:0908 bgp
1049   19   bgp-event       10 Receive        0:00:27:0622 bgp
1049   20   bgp-mib-trap    10 Receive      359:20:47:0318 bgp
1049   21   bgp-io-ka       10 Receive        0:00:07:0483 bgp
1049   22   bgp-l2vpn-thr   10 Receive        0:00:08:0766 bgp
1049   23   async           10 Receive      359:19:14:0456 bgp

 

例として、BGP プロセス内の bgp-router スレッドが CPU リソースを 100% 消費したとします。

bgp-router スレッド は TID(Thread ID) 14 なので、show processes bgp detail から CPU コア2 で動作していることが分かります。この状況で show processes cpu にて CPU 使用率を確認した場合は以下のようになります。

BGP プロセスの CPU 使用率

コマンドの実行例

RP/0/RSP0/CPU0:ASR9K#show processes cpu

CPU utilization for one minute: 25%; five minutes: 16%; fifteen minutes: 3%

PID     1Min   5Min   15Min Process
<snip>
573758   25%    12%      2% bgp
<snip>

 

CPU 使用率は4つのコアの使用率を合計して計算する為、1つのコアで 100% 近いCPU 使用率になったとしても、この環境での CPU 使用率は 25% 程度となります。よって、マルチコアCPUの場合は、CPU 使用率を監視をしていたとしても High CPU 状態であるとには気づきにくいです。
※動作に問題はなくとも、25% や 50% の CPU 使用率が継続することで、問合せ頂くことがあります。

CPU のコア単位で CPU 使用率が確認できる ”run top_procs -D -i1" コマンドを使用すると、CPU コア2 のCPU リソースが 0 に近い(idle が少ない)ことが分かります。
※run コマンドは TAC から指示のあった場合以外は非サポートです。

CPU コア単位の CPU 使用率の確認

コマンドの実行例

RP/0/RSP0/CPU0:ASR9K#run top_procs -D -i1

node0_RSP0_CPU0: 328 procs, 4 cpus, 5.08 delta, 359:54:21 uptime

Memory: 8192 MB total, 6.303 GB free, sample time: Sat Jan 20 08:09:51 2014

cpu 0 idle: 99.30%, cpu 1 idle: 98.74%, cpu 2 idle: 0.56%, cpu 3 idle: 98.60%, total idle: 74.87%, kernel:  0.05%

<snip>

 

以上の理由で、IOS-XR でマルチコア CPU が搭載されたモジュールを使用されている場合、一つのプロセスが CPU 使用率 25% や 50% 前後で固定された状態が継続している場合は、CPU 全体の使用率が100% を継続していなくとも従来の High CPU 問題と同様にパフォーマンス限界や、S/W 不具合等の可能性があります。CPU 使用率について気になるようであれば TAC までお問い合わせください。


CRS-1/CRS-3/ASR9000 でサポートする RP と LC の CPU コア数については、下記ドキュメントに記載してあります。

IOS-XR: CRS-1/CRS-3/ASR9000 でサポートする RP/LC の CPU コア数
https://supportforums.cisco.com/ja/document/12067881

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします