はじめに
このドキュメントでは、高いCPU/QFPの問題を迅速に解決するためにTACに適切に報告するための、一般的なトラブルシューティングについて説明します。
前提条件
要件
次の項目に関する基本的な知識が推奨されます。
- Cisco IOS®-XEパケット転送アーキテクチャに関する基礎知識。
- パケットトレース機能の基本的な経験
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。これは、ASR1000、ISR4000、ISR1000、Cat8000またはCat8000vのような物理/仮想化QFPを使用するルーティングCisco IOS-XE®プラットフォームに適用されます。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
このドキュメントでは、最初の問い合わせから優れたTACエクスペリエンスを得るために、CPU/QFPの高使用率の問題の初期トリアージでTACが必要とするコマンドの概要を説明します。
また、このドキュメントには、中央処理装置(CPU)の使用率が高い問題や、Quantum Flow Processor(QFP)の使用率が高い問題を特定して、TACケースをオープンする前に解決策を見つけるための、トラブルシューティングのヒントも含まれています。
このドキュメントの目的は、トラブルシューティング手順を広く説明することではありません。詳細なトラブルシューティングガイドへの参照が提供されています(入手可能な場合)。
このドキュメントの最後には、コンポーネントを視覚的に表すブロック図があり、教育目的に使用できます。
高いコンポーネント(メモリ、TCAM、CPU、QFP)の使用率は通常、次のいずれかの指標になります。
- デバイス上の何らかの問題(プロセスが期待どおりに動作しない、潜在的なソフトウェアの問題)、またはネットワーク環境の問題(パントトラフィック、ループ)
- デバイスのハードウェア制限に達する(デバイスで実行されているトラフィック/機能が多すぎる)
コンポーネントの使用率が高くなる根本的な原因を特定することは、問題を解決するための適切な手順を判断するために不可欠です。
QFP/CPU使用率が高い場合の症状
監視ツールまたは次のコマンドを使用して、CPUまたはQFPが高い状態かどうかを検証できます。
コントロールプレーン(CPU):IOSd
show process cpu sorted
iosxe_router#show process cpu sorted
CPU utilization for five seconds: 90%/0%; one minute: 0%; five minutes: 0%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
395 78769 1242162 63 89.07% 88.04% 89.02% 0 CDP Protocol
1 8 88 90 0.00% 0.00% 0.00% 0 Chunk Manager
--- snip ---
「CPU utilization for five seconds: 90%/0%; one minute: 0%; five minutes: 0%」という行から、「five seconds」文字列の後の最初の値に注目する必要があります。この場合、90 %は全体的なCPU使用率を示し、この場合のスラッシュ0の右側の数字は割り込みによるCPU使用率を示します。この2つの数値の差は、プロセスによる合計CPU使用率を表します。このシナリオでは、CDPプロトコルがCPU(コントロールプレーン)リソースのほとんどを消費しています。
コントロールプレーン – カーネル(CPU)
Cisco IOS-XEはLinuxベースのカーネルを使用するため、実行されているいずれかのプロセスに問題が見つかる場合があります。プロセスが問題を引き起こしているかどうかを検証するためにソートされたshow processes CPUプラットフォームを使用できます(5秒の列に焦点を当てます)。基盤となるオペレーティングシステムからのプロセスを表示します。
iosxe_router#show process cpu platform sorted
-- depending on the architecture, there can be multiple cores, deleting for brevity --
Pid PPid 5Sec 1Min 5Min Status Size Name
--------------------------------------------------------------------------------
18009 18001 323% 325% 328% R 266740 ucode_pkt_PPE0
11168 11160 1% 1% 1% S 914556 linux_iosd-imag
96 2 1% 0% 0% S 0 ksmd
--- snip ---
注:仮想QFPを持つルータには、データプレーンをエミュレートするソフトウェアプロセスであるucode_pkt_PPE0プロセスがあります。したがって、CPU使用率の一因となるプロセスのリストから、そのプロセスを無視できます。
データプレーン(QFP)
QFPは、すべてのパケット転送を担当するSystem on a Chip(SOC)です。詳細については、「IOS-XEルータでのQFPの高使用について」を参照してください。
iosxe_router #show platform hardware qfp active datapath utilization
CPP 0: Subdev 0 5 secs 1 min 5 min 60 min
--- snip ---
(bps) 21992 13648 13736 13720
Processing: Load (pct) 0 0 0 0
Crypto/IO
RX: Load (pct) 0 0 0 0
TX: Load (pct) 1 1 1 0
Idle (pct) 99 99 99 99
show platform hardware qfp active data path utilizationコマンドから、処理「5秒間の負荷」列に焦点を合わせます。この列が、QFP使用量全体のうち、最新の値を示すためです。一部のデバイスでは、Crypto/IOモジュールの使用状況も表示され、アイドル状態に注目します。100 %に近いほど良好です。
潜在的なログの検出
デフォルトでは、CPU番号0(Cisco IOS-XEシステムの最初のCPU)を使用するIOSdで高いCPU使用率を示すログがシステムによって生成されることはありません。
最初のコアでsyslogを生成するには、このコマンドを最初に設定する必要があります。
このコマンドは、「CPU Thresholding Notification: process cpu threshold type {total | process | interrupt} rising percentage interval seconds [falling percentage interval seconds]」に記載されている形式に従って記述する必要があります。
この方法で、次のタイプの通知を確認できます。
%SYS-1-CPURISINGTHRESHOLD: Threshold: Total CPU Utilization(Total/Intr): 91%/2%, Top 3 processes(Pid/Util):
高い使用率を検出するもう1つの方法は、SNMPまたはテレメトリ測定を使用することです。
場合によっては、他のコアの使用率ヒット率が高い場合に、次のようなリソース制限アラートが表示されることがあります。
PLATFORM_INFRA-5-IOS_INTR_OVER_LIMIT:
データプレーン(DP)の場合、通常しきい値の負荷を超過したことを示す次のタイプのQFPアラートがログに表示されます。
MCPRP-QFP-ALERT: Slot: 0, QFP:0, Load 93% exceeds the setting threshold(80%).
TACの初期トリアージに必要な情報
- 高いCPU動作が観察された場合の次のコマンドの出力:
- show clock
- show version
- show running
- show process cpu sorted
- show process cpu history(プロセスのcpu履歴を表示)
- プラットフォームリソースの表示
- show platform hardware qfp active datapath utilization summary
- show logging
- ネットワーク トポロジ.
- CPU/QFP使用履歴グラフ。
- 最近のネットワークまたは設定の変更、予想されるトラフィックレート/フローなどの詳細情報を提供します。
CPUが一定の100 %でスタックしていない場合は、show techの出力を含めます。これはTACにとって非常に役立ちます。問題を迅速に見つけるためのTACの自動化機能を利用できます。
注:デバイスにはプロセスの実行時間に関する履歴データが保存されないため、問題が発生している間にCPUの高使用状態をトラブルシューティングする必要があります。
注:サポートされているバージョンを実行していることを確認してください。リリースの販売終了およびサポート終了に関する文書を探します。必要に応じて、現在Software Maintenance Releasesの対象になっているバージョンに移行します。それ以外の場合、TACはトラブルシューティングと解決のオプションを制限します。
高いCPU/QFP使用率について
原則として、CPU/QFPは80 %を超えて実行されている場合、高いと見なされます。
Cisco IOS-XEルータは、コントロールプレーン(CPU)またはデータプレーン(QFP)の高使用率に関連付けることができます。
注:理想的には、高いCPU/QFP使用率は、時間の経過に伴うデバイスの一般的な使用パターンを基準にして評価する必要があります。たとえば、デバイスが通常10 %のCPU使用率で動作しているのに、突然40 %にジャンプした場合、そのデバイスのCPU使用率が高いことを示している可能性があります。一方、デバイスのCPU使用率が常に80 %である場合は、それが通常の動作レベルであれば、必ずしも問題にはなりません。CPUグラフを使用してシステムを監視すると、このデータを収集して分析し、各デバイスのベースラインを確立するのに役立ちます。
一般的なトラブルシューティングの手順
- 問題がコントロールプレーン(CPU)かデータプレーン(QFP)かを特定します。
- 特定のコマンドを使用して、問題のあるプロセスを特定します。
- プロセス名に基づいて、そのプロセスのWeb検索を実行します。
- そのプロセスを既知の機能/設定と一致させることに重点を置きます。
- プロセス名と動作に一致するソフトウェア不具合があるかどうかを確認します。修正済みリリースがある場合は、回避策を実施するか、修正済みリリースへのソフトウェアアップグレードを実施します。
- CPU/QFPのグラフを使用して、CPU/QFPの使用率が上昇し始める正確な時刻を特定します。最近の変更と一致する場合は、初期の設定/ソフトウェアバージョンに戻して結果を確認します。
- Web検索で有用な結果が得られない場合、または機能が正しく動作していないと考えられる場合は、次の情報を使用してTACケースをオープンしてください。
- show tech
- 収集したコマンド(「TACの初期トリアージに必要な情報」セクションを参照)。
- 問題が特定の設定変更で発生した時刻と一致し、TACケースをオープンするときにこの情報を含めるようにしてください。
- データプレーンが問題として特定された場合:ネットワークトポロジ、予想されるユーザ数、デバイスを通過する一般的なトラフィックレートを提供します。
- 可能な場合は、CPU/QFP使用率の履歴グラフを提供します。
Cisco IOS-XEルータでのCPUの高使用について
Cisco IOS-XEルータのCPUとは、デバイスの管理/コントロールプレーンの動作を担当するCPUを指します。デバイス上では多くのプロセスが実行されており、そのすべてがLinuxベースのカーネル上で実行されています。これらの各プロセスは、汎用CPUで実行されます。
CPUの使用率が高い状態は、通常、次の状態を示します。
- 1つ以上のプロセスが高負荷のタスクを完了しなければならない。
- 1つ以上のプロセスが期待どおりに動作していません。
- データプレーンによって送信されるパケットを受信し、処理するコントロールプレーン。
一部のプラットフォームには、次のルールに従った複数の汎用CPUが搭載されています。
- Cisco IOS-XEルータがモジュラ式(つまり、ルートプロセッサ、エンベデッドサービスプロセッサ、SPAインターフェイスプロセッサなどの複数のカードを受け入れる)である場合、コントロールプレーンの動作に使用できる複数のCPUと、各カードに1つの汎用CPUがあります。
- Cisco IOS-XEルータが組み込み型で、サービスモジュールまたはインターフェイスカードのみを受け入れる場合、ルータは(show platform resourcesの出力に示されるように)ルートプロセッサ内にあると見なされる単一の汎用CPU(仮想または物理のいずれか)を備えています。
Cisco IOSXEデバイスには、通常、データプレーンとコントロールプレーンのCPU専用コアがあります。
通常、CPU 0(最初のCPU)がIOSd(IOSデーモン)に関連付けられている場合、CPU専用コアはコントロールプレーンに関連しています。その他のCPUは、コントロールプレーンCPUとデータプレーンCPUの組み合わせになります。
一般的にモジュール型であるASR 1000の場合、show platform resourcesやshow platform software status control-processor briefなどのコマンド出力に、コントロールプレーン(RP)CPUとデータプレーン(ESP)CPUの使用率が表示されます。
コントロールプレーンCPUは、BGPプロトコル、STPプロトコル、CDP、SSHなどの処理などのプロトコル処理を制御します。コントロールプレーンCPUは、ルータ自体を宛先とするパケットを処理します。
データプレーンは一般に、ルータがRouting Processor(RP;ルーティングプロセッサ)で自身を消費しない中継パケットを指し、代わりに、パケットプロセッサであるQuantum Flow Processor(QFP)コンポーネントでのみ処理されるパケットをデータプレーンが処理します。これらのパケットは、ルックアップが意図された宛先に中継パケットを送信するために発生するQFPで処理されます。
Cisco IOS-XEルータでの高いQFPについて
Quantum Flow Processor(QFP)は、デバイス内のすべてのパケット転送処理を担当するSystem on a Chip(SoC)です。
QFPは、マイクロコードと呼ばれる特殊なソフトウェアを実行します。このマイクロコードは、入出力インターフェイスの設定に基づいて、デバイスを通過するすべてのパケットに機能を実行して適用します。また、さまざまなプロセスを通じてシステムの他の部分とも対話します。
QFPの高使用状態が発生している場合、通常は次の状態を示します。
- QFP処理のネットワークトラフィックが多すぎます(1秒あたりのパケット数)。
- 高強度機能を処理する必要があるQFP。
- 1秒あたりのパケット数の組み合わせ+高集約機能は、QFP使用率に大きな影響を与えます。
- マイクロコードが間違った方法で何かを処理しています。
この状況をより深く理解するために、TACでは、追加分析のためにFeature Invocation Array(FIA)トレースを収集する必要があります。これは、「IOS-XEデータパスパケットトレース機能によるトラブルシューティング」で説明されています。
Cisco IOS XEルータでの高いCPU/QFP(ISR4300/4200/4400/4600シリーズ、Cat8200/8300/8500、CSR1000v、CAT8000v)
これらは、問題発生時に収集する必要がある基本的なコマンドです(ログ通知と照合して出力を取得するためにEEMロジックを実装できます)。
router_non_modular#show platform resources
**State Acronym: H - Healthy, W - Warning, C - Critical
Resource Usage Max Warning Critical State
----------------------------------------------------------------------------------------------------
RP0 (ok, active) H
Control Processor 10.64% 100% 80% 90% H
DRAM 2143MB(54%) 3913MB 88% 93% H
bootflash 2993MB(97%) 3099MB 70% 90% C
ESP0(ok, active) H
QFP H
DRAM 52844KB(20%) 262144KB 85% 95% H
IRAM 207KB(10%) 2048KB 85% 95% H
CPU Utilization 0.00% 100% 90% 95% H
Router#show platform software status control-processor brief
Load Average
Slot Status 1-Min 5-Min 15-Min
RP0 Healthy 1.75 1.25 1.14
Memory (kB)
Slot Status Total Used (Pct) Free (Pct) Committed (Pct)
RP0 Healthy 4003008 2302524 (58%) 1700484 (42%) 3043872 (76%)
CPU Utilization
Slot CPU User System Nice Idle IRQ SIRQ IOwait
RP0 0 5.60 10.80 0.00 75.00 0.00 0.10 8.50
1 8.10 11.81 0.00 66.66 0.00 0.20 13.21
2 4.69 9.49 0.00 80.81 0.00 0.19 4.79
3 4.80 10.20 0.00 79.30 0.00 0.10 5.60
4 3.70 3.20 0.00 92.90 0.00 0.00 0.20
5 1.09 2.99 0.00 95.00 0.00 0.09 0.79
6 20.00 33.10 0.00 46.90 0.00 0.00 0.00
7 0.00 0.00 0.00 100.00 0.00 0.00 0.00
Router#
モジュラ型Cisco IOS-XEルータでの高いCPU使用率(ASR1kシリーズ)
モジュラ型のCisco IOS-XEルータでCPU使用率が高いと、ルートプロセッサ(RP)カード、エンベデッドサービスプロセッサ(ESP)カード、またはSPAインターフェイスプロセッサ(SIP)カードでCPU使用率が高くなる可能性があります。次のコマンドは、CPUの高使用状態がデバイス内の別のカードに関連しているかどうかを理解するのに役立ちます。
ios_xe_modular_router#show platform resources
**State Acronym: H - Healthy, W - Warning, C - Critical
Resource Usage Max Warning Critical State
----------------------------------------------------------------------------------------------------
RP0 (ok, active) H
Control Processor 11.62% 100% 90% 95% H
DRAM 1730MB(45%) 3783MB 90% 95% H
ESP0(ok, active) H
Control Processor 19.59% 100% 90% 95% H
DRAM 616MB(65%) 946MB 90% 95% H
QFP H
TCAM 8cells(0%) 65536cells 45% 55% H
DRAM 79212KB(30%) 262144KB 80% 90% H
IRAM 9329KB(7%) 131072KB 80% 90% H
SIP0 H
Control Processor 2.30% 100% 90% 95% H
DRAM 280MB(60%) 460MB 90% 95% H
* Cisco IOSバージョンによっては、QFPにプロセッサ使用率が含まれる場合があります。含まれない場合は、show platform hardware qfp datapath utilization
ASR1kの適切なリファレンスガイドは、「ASR1000シリーズルータでのCPU高使用率のトラブルシューティング」で確認できます。
注:コマンドは、プラットフォームとバージョンによって異なる場合があります。場合によっては、特定のプラットフォームのマニュアルを参照してください。