内容

はじめに

前提条件

要件

使用するコンポーネント

アーキテクチャ

Cisco IOSdでのCPU使用率

トラフィック別 CPU 利用率

インストールされた CPU コア

CPU コアの配分

CPU を監視するためのベスト プラクティス

はじめに

このドキュメントでは、4300シリーズファミリのIntegrated Service Router(ISR)でのCentral Process Unit（CPU；セントラルプロセスユニット）の使用率を確認する方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- Cisco IOS® XE

- ISR43XX

使用するコンポーネント

このドキュメントの情報は、次のハードウェアとソフトウェアのバージョンに基づいています。

- ISR4321/K9

- ISR4331/K9

- ISR4351/K9

- 03.16.01a.S // 15.5(3)S1a

- 03.16.04b.S // 15.5(3)S4b

- 16.9.7

- 16.12.4

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな（デフォルト）設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

アーキテクチャ

Cisco ISR 4000シリーズプラットフォームは、Linuxカーネルを実行する分散ソフトウェアアーキテクチャを備えたCisco IOS XEを実行します。Linuxカーネルでは、Cisco IOS®が多数あるLinuxプロセスの1つとして実行されます。 Cisco IOSは、Cisco IOS-Daemon(IOSd)と呼ばれるデーモンとして動作します。

Cisco IOSdでのCPU使用率

IOSd で CPU 使用率を監視するには、show process cpu コマンドを実行します。

#show process cpu

CPU utilization for five seconds: 1%/0%; one minute: 1%; five minutes: 0%

PID Runtime(ms)     Invoked      uSecs   5Sec   1Min   5Min TTY Process

1           2           8        250  0.00%  0.00%  0.00%   0 Chunk Manager

2           5          18        277  0.07%  0.00%  0.00%   0 Load Meter

3           0           2          0  0.00%  0.00%  0.00%   0 DiagCard4/-1

4           0           1          0  0.00%  0.00%  0.00%   0 Retransmission o

5           0           1          0  0.00%  0.00%  0.00%   0 IPC ISSU Dispatc

出力には CPU 使用率の 2 つの値が含まれます。最初の値は CPU 使用率の合計値で、2 番目の値は IOSd に送信された割り込みによる CPU 使用量です。

割り込みによるCPUの総量とCPUの総量の差は、プロセスが消費したCPUの値です。これを裏付けるには、最後の5秒間のプロセスの使用量をすべて加算します。

- プロセスの CPU 消費量 = 1％ - 0％ = 1％ = コマンドでリストされるすべてのプロセスの CPU 消費量

大部分の CPU を消費するプロセスを一番上に表示するには、show process cpu sorted コマンドを実行します。

#show process cpu sorted

CPU utilization for five seconds: 1%/0%; one minute: 0%; five minutes: 0%

PID Runtime(ms)     Invoked      uSecs   5Sec   1Min   5Min TTY Process

64         103          10      10300  0.33%  0.02%  0.00%   0 Licensing Auto U

83          26         231        112  0.27%  0.00%  0.00%   0 PuntInject Keepa

235         555       48176         11  0.11%  0.09%  0.07%   0 Inline Power

1           2           8        250  0.00%  0.00%  0.00%   0 Chunk Manager

注：すべてのプロセスを追加すると、結果が浮動小数点値になる場合があります。IOSdは結果を次の整数に丸めます。

トラフィック別 CPU 利用率

ISR4300 ファミリの設計では、トラフィックを転送するために、QuantumFlow プロセッサ（QFP）と呼ばれる要素が使用されます。

注意:QFPはASR1Kの1つまたは複数の物理チップに搭載されています。ISR4400では、Cavium Octeonコプロセッサと同じ機能がISR4300でも提供され、メインのIntel CPUの特定のコアで同じ機能が提供されます。ISR4300 ファミリでは、QFP を、パケットを転送するソフトウェアと考えることができます。

トラフィックによって消費される CPU の量を確認するには、show platform hardware qfp active datapath utilization コマンドを実行します。

#show platform hardware qfp active datapath utilization

CPP 0: Subdev 0            5 secs        1 min        5 min       60 min

Input:  Priority (pps)            0            0            0            0

(bps)            0            0            0            0

Non-Priority (pps)            3            2            2            1

(bps)         1448          992          992          568

Total (pps)            3            2            2            1

(bps)         1448          992          992          568

Output: Priority (pps)            0            0            0            0

(bps)            0            0            0            0

Non-Priority (pps)            3            2            2            1

(bps)        12216         8024         8024         4576

Total (pps)            3            2            2            1

(bps)        12216         8024         8024         4576

Processing: Load (pct)            0            0            0            1

このコマンドは、プライオリティ パケットと非プライオリティ パケットの入出力による CPU 使用状況を一覧表示します。1 秒あたりのパケット数（PPS）と 1 秒あたりのビット数（BPS）の情報が表示され、最後の行にはパケット転送による CPU 負荷量合計のパーセンテージ（PCT）値が表示されます。

インストールされた CPU コア

ISR4300 ファミリには、モデルに応じて異なる量の CPU コアがインストールされています。デバイスに搭載されているコアの数を確認するには、show processes cpu platform コマンドを実行します。

#show processes cpu platform

CPU utilization for five seconds: 30%, one minute: 29%, five minutes: 29%

Core 0: CPU utilization for five seconds: 13%, one minute: 13%, five minutes: 13%

Core 1: CPU utilization for five seconds:  2%, one minute:  3%, five minutes:  3%

Core 2: CPU utilization for five seconds:  0%, one minute:  0%, five minutes:  0%

Core 3: CPU utilization for five seconds: 99%, one minute: 99%, five minutes: 99%

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

--------------------------------------------------------------------------------

1       0      0%      0%      0%  S          1863680  init

2       0      0%      0%      0%  S                0  kthreadd

または、show platform software status control-processor コマンドを実行します。

#show platform software status control-processor

<output omitted>

Per-core Statistics

CPU0: CPU Utilization (percentage of time spent)

User:  4.80, System: 10.30, Nice:  0.00, Idle: 84.50

IRQ:  0.40, SIRQ:  0.00, IOwait:  0.00

CPU1: CPU Utilization (percentage of time spent)

User:  2.00, System:  3.40, Nice:  0.00, Idle: 94.59

IRQ:  0.00, SIRQ:  0.00, IOwait:  0.00

CPU2: CPU Utilization (percentage of time spent)

User:  0.50, System:  0.00, Nice:  0.00, Idle: 99.49

IRQ:  0.00, SIRQ:  0.00, IOwait:  0.00

CPU3: CPU Utilization (percentage of time spent)

User: 24.72, System: 75.27, Nice:  0.00, Idle:  0.00

IRQ:  0.00, SIRQ:  0.00, IOwait:  0.00

あるいは、show platform software status control-processor brief コマンドを実行します。上記のどのコマンドを実行しても、インストールされているコアの量が表示されます。

#show platform software status control-processor brief

<output omitted>

CPU Utilization

Slot  CPU   User System   Nice   Idle    IRQ   SIRQ IOwait

RP0    0   4.30   9.80   0.00  85.90   0.00   0.00   0.00

1   0.79   0.99   0.00  98.20   0.00   0.00   0.00

2   0.50   0.00   0.00  99.50   0.00   0.00   0.00

3  24.60  75.40   0.00   0.00   0.00   0.00   0.00

CPU コアの配分

ISR4300 ファミリの設計では、特定のコアがパケット処理に使用されます。コア 4 〜 7 は ISR4331 および 4351 のパケット処理用に予約されており、コア 2 および 3 は ISR4321 に使用されます。

パフォーマンス上の理由によりCisco IOS XEバージョン16.5.xを含むまで、Hierarchical Queue Framework(HQF)はスレッドを常にホットスピンさせ、装置に搭載されている設定やシステムを通過するトラフィックの量に関係なく、高いCPU使用率で実行します。ISR4300プラットフォームでは、QFPソフトウェアがメインCPU上で動作するため、1つ以上のコアでCPU使用率が高く見える場合があります。

ただし、Cisco IOS XEバージョン16.6.xの後および以降は、これらのプラットフォームがスレッドをホットスピンさせないように変更が実装されています。この場合、CPU使用率はコアを通じてより分散されます。

ホットスピンの使用量を表示するには、Cisco IOS XE 16.6.xの前にshow processes cpu platform sortedコマンドを実行します。

#show processes cpu platform sorted

CPU utilization for five seconds: 28%, one minute: 29%, five minutes: 29%

Core 0: CPU utilization for five seconds: 12%, one minute: 13%, five minutes: 14%

Core 1: CPU utilization for five seconds:  2%, one minute:  3%, five minutes:  3%

Core 2: CPU utilization for five seconds:  0%, one minute:  0%, five minutes:  0%

Core 3: CPU utilization for five seconds: 99%, one minute: 99%, five minutes: 99% <<< hot-spin

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

--------------------------------------------------------------------------------

2541    1955     99%     99%     99%  S       1073807360  qfp-ucode-utah <<< high CPU process

1551     929      7%      7%      7%  S       2038525952  fman_fp_image

8コアアーキテクチャでは、Cisco IOS XE 16.6.xより前のホットスピンで異なるコアを使用しても同じ結果が得られます。

#show processes cpu platform sorted

CPU utilization for five seconds: 15%, one minute: 14%, five minutes: 15%

Core 0: CPU utilization for five seconds:  6%, one minute:  4%, five minutes:  8%

Core 1: CPU utilization for five seconds:  1%, one minute:  0%, five minutes:  2%

Core 2: CPU utilization for five seconds:  9%, one minute: 10%, five minutes:  7%

Core 3: CPU utilization for five seconds:  1%, one minute:  2%, five minutes:  1%

Core 4: CPU utilization for five seconds:  1%, one minute:  1%, five minutes:  1%

Core 5: CPU utilization for five seconds:  0%, one minute:  0%, five minutes:  0%

Core 6: CPU utilization for five seconds: 99%, one minute: 99%, five minutes: 99% <<< hot-spin

Core 7: CPU utilization for five seconds:  0%, one minute:  0%, five minutes:  0%

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

--------------------------------------------------------------------------------

3432    2779     99%     99%     99%  S       1086341120  qfp-ucode-utah <<< high CPU process

2612    1893      7%      7%      7%  S       2038697984  fman_fp_image

26114   25132      4%      5%      5%  R         42803200  hman

Cisco IOS XE 16.6.x以降では、コア2とコア3の間で負荷が分散されていることがわかります。

------------------ show process cpu platform sorted ------------------

CPU utilization for five seconds: 31%, one minute: 32%, five minutes: 29%

Core 0: CPU utilization for five seconds:  3%, one minute:  3%, five minutes:  3%

Core 1: CPU utilization for five seconds:  3%, one minute:  2%, five minutes:  2%

Core 2: CPU utilization for five seconds: 39%, one minute: 41%, five minutes: 34% <<< load distributed

Core 3: CPU utilization for five seconds: 84%, one minute: 83%, five minutes: 79% <<< load distributed

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

--------------------------------------------------------------------------------

26939   26344    127%    126%    116%  S       1195311104  qfp-ucode-utah <<< high CPU process

Cisco IOS XE 16.6.x以降を含む場合、上記の出力と同じ内容が適用されますが、コア4 ～ 7の場合は次のようになります。

------------------ show process cpu platform sorted ------------------

CPU utilization for five seconds: 30%, one minute: 24%, five minutes: 27%

Core 0: CPU utilization for five seconds: 41%, one minute: 13%, five minutes: 13%

Core 1: CPU utilization for five seconds: 23%, one minute: 11%, five minutes: 13%

Core 2: CPU utilization for five seconds: 19%, one minute: 10%, five minutes: 12%

Core 3: CPU utilization for five seconds: 38%, one minute: 12%, five minutes: 12%

Core 4: CPU utilization for five seconds: 28%, one minute: 26%, five minutes: 28% <<< load distributed

Core 5: CPU utilization for five seconds: 53%, one minute: 40%, five minutes: 37% <<< load distributed

Core 6: CPU utilization for five seconds: 18%, one minute: 16%, five minutes: 17% <<< load distributed

Core 7: CPU utilization for five seconds: 93%, one minute: 81%, five minutes: 81% <<< load distributed

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

--------------------------------------------------------------------------------

26049    25462    164%    165%    170%  S           394128  qfp-ucode-utah <<< high CPU process

注意：コアCPU使用率に問題があると考えられる場合は、Technical Assistance Center(TAC)のケースを開いてサポートを受け、デバイスの安定性を確認してください。

CPU を監視するためのベスト プラクティス

データパスの使用率または IOSd の使用状況を確認するには、特定のコマンドを使用することをお勧めします。コア表示コマンドを実行すると、誤検出アラートが発生する可能性があります。

データパスの使用率を監視するコマンドは次のとおりです。

- show platform hardware qfp active datapath utilization

IOSd の使用状況を監視するコマンドは次のとおりです。

- show process cpu sorted

Simple Network Management Protocol（SNMP; 簡易ネットワーク管理プロトコル）で IOSd の CPU 使用率を監視するには、次のいずれかのオブジェクト識別子（OID）を使用します。

- busyPer = 過去 5 秒間の IOSd の CPU ビジー率

- avgBusy1 = IOSd の 1 分間の指数関数的に減衰した CPU ビジー率の変動平均

- avgBusy5 = IOSd の 5 分間の指数関数的に減衰した CPU ビジー率の変動平均