はじめに
このドキュメントでは、4300シリーズファミリのサービス統合型ルータ(ISR)でのCentral Process Unit(CPU;セントラルプロセスユニット)の使用率を確認する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、次のハードウェアとソフトウェアのバージョンに基づいています。
- 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 の使用状況を監視するコマンドは次のとおりです。
Simple Network Management Protocol(SNMP; 簡易ネットワーク管理プロトコル)で IOSd の CPU 使用率を監視するには、次のいずれかのオブジェクト識別子(OID)を使用します。