ルータのCPUやメモリを確認するとき、まず何が分かればいいのか

ルータのリソース使用状況を確認したい人が本当に知りたいのは、単に「CPU使用率を見るコマンド」ではありません。知りたいのは、今の機器が本当に重いのか重いなら何が原因らしいのか放置でよいのか、いますぐ対応すべきなのかです。

そこでこの記事では、Cisco IOS/IOS-XE系ルータとFortiGateを中心に、CPU・メモリ・セッション・プロセスの見方を、コマンド例見るべきポイント異常の切り分け順まで含めて整理します。単なるコマンド一覧ではなく、現場で実際にどう読むかに寄せて解説します。

先に結論を言うと、CPUやメモリは1つの数値だけ見ても判断を誤りやすいです。重要なのは次の4点です。

  • 瞬間値ではなく継続して高いか
  • どのプロセス・機能が食っているか
  • セッション増加やトラフィック増加と一致しているか
  • 通信断、遅延、管理画面遅延など実害があるか

逆に、CLIでCPU 90%と出た瞬間だけ見て「故障だ」と決めつけるのは危険です。高負荷には、正常な一時負荷と、明らかに危険な継続負荷の両方があります。

最初に見るべき確認順序|いきなり詳細コマンドを打たない

現場でありがちなのが、いきなり細かいプロセス一覧を見て迷子になることです。まず全体像をつかみ、その後に深掘りした方が速く、判断も外しにくいです。

確認順序 何を見るか 主なコマンド例 目的
1 CPU全体使用率 Cisco: show processes cpu sorted
FortiGate: get system performance status
本当に機器全体が重いか確認する
2 メモリ全体 Cisco: show memory statistics
FortiGate: diagnose hardware sysinfo memory
不足や枯渇傾向がないか確認する
3 プロセス別使用状況 Cisco: show processes cpu sorted / show processes memory sorted
FortiGate: diagnose sys top
どの処理が負荷を出しているか絞る
4 トラフィック・セッション Cisco: show interfaces / show ip traffic
FortiGate: get system session status
負荷の背景に通信増加があるか見る
5 ログ・イベント show logging / FortiGate event log 異常動作、再起動、エラー多発の有無を確認する

この順序にすると、単なる一時的な高負荷なのか、継続的に危険な状態なのかを見分けやすくなります。逆に、CPUが高いという一点だけで「回線障害」「機器故障」「帯域不足」と決めるのは早計です。

まず押さえるべき判断基準|CPUとメモリは何%なら危険か

「CPU何%なら危険ですか」とよく聞かれますが、これは機種、役割、機能、平常時の負荷で変わります。とはいえ、現場の目安がないと判断しづらいので、最低限の見方を表にします。

項目 よくある見え方 判断の目安 次に見ること
CPU 5秒だけ高い 5秒 80〜99%、1分/5分は低い 即異常とは限らない。一時処理の可能性 30秒〜1分おきに再確認
CPUが継続して高い 1分/5分も高い 要調査。継続負荷の可能性が高い 上位プロセス、トラフィック、セッション
メモリ使用率が高い 70〜90%以上 高いだけでは断定不可。減少傾向と実害で判断 Freeの推移、ログ、プロセス別消費
セッション急増 平常時比で大幅増 攻撃、スキャン、通信集中の疑い 送信元/宛先、ポリシー、NAT、ログ
実害あり CLIが重い、通信遅延、切断 緊急度高い。数値より症状優先 制御系負荷、エラー、ログ、直前変更

重要なのは、CPU・メモリ単体ではなく、症状と推移で判断することです。CPU 90%でも安定しているケースはありますし、CPU 60%でも制御系処理が詰まり実害が出るケースもあります。

CiscoルータでCPU使用率を確認するコマンドと見方

まずは全体のCPU使用率を見る

Cisco IOS系で最初に打つことが多いのは次のコマンドです。

show processes cpu sorted

このコマンドでは、CPUの全体使用率と、CPUを使っているプロセスを確認できます。最初に見る場所は先頭行です。代表的な出力イメージは次のようなものです。

CPU utilization for five seconds: 82%/24%; one minute: 76%; five minutes: 68%
 PID Runtime(ms)   Invoked      uSecs   5Sec   1Min   5Min TTY Process
  83   18523920   4938201       3751  31.5%  29.8%  25.2% IP Input
  91    5321980   1293001       4115   8.1%   7.4%   6.9% ARP Input
 177    1241000    723901       1714   5.8%   4.9%   4.1% SNMP ENGINE

ここで見るべきポイントは次の4つです。

見る場所 意味 見るポイント 現場での読み方
five seconds 直近の瞬間CPU 一瞬だけ高いか 高くても1回だけなら保留
one minute 1分平均 短時間の高負荷が続いているか ここも高いなら要注意
five minutes 5分平均 継続的に重いか 恒常負荷の判断材料になる
82%/24% の後ろ 割り込みCPU interrupt比率が高いか パケット処理・IF周りの負荷を疑う

特に重要なのは、5秒だけ高いのか、1分や5分も高いのかです。5秒だけ高いなら、ルーティング更新や管理処理の一時増加かもしれません。1分・5分も高ければ、継続的な負荷と考えるべきです。

また、「82%/24%」のように2つ数値が出る場合、後ろの値は割り込み処理です。ここが高い場合、単純なプロセス高負荷ではなく、インターフェース関連のパケット処理やCPU転送が多い可能性があります。

どのプロセスがCPUを使っているかを見る

同じ show processes cpu sorted の下部一覧で、CPU使用率が高いプロセスを確認します。

ここで大事なのは、名前を知っているかどうかより、同じプロセスが継続して上位かどうかです。1回だけでは判断しづらいため、30秒おき、1分おきなど複数回見るのが基本です。

プロセス名の例 よくある意味 疑うべきこと 次に打つ候補
IP Input CPUでのIPパケット処理 CPU転送、ACL、NAT、特殊トラフィック show ip traffic / show interfaces
ARP Input ARP関連処理 ARPストーム、L2接続先の異常 show arp / show interfaces counters errors
SNMP ENGINE SNMP応答処理 監視取得過多、ポーリング間隔過密 監視サーバ設定確認
Check heaps 内部管理処理 瞬間値なら正常範囲のことも多い 継続性を確認
BGP Router / OSPF / EIGRP ルーティング制御 経路変動、隣接不安定、経路数増加 show ip bgp summary / show ip ospf neighbor
Crypto / IPsec系 暗号処理 VPNトラフィック急増、HW支援未使用 show crypto session / show crypto engine brief

ただし、プロセス名だけで原因を断定してはいけません。たとえばIP Inputが高くても、原因はACL、NAT、トンネル、制御パケット、DoS気味の通信など複数あります。必ずその次に、トラフィックや該当機能の統計へ進んでください。

CiscoでCPU高騰時に追加で見るべきコマンド

CPUが高いと分かった後、次に何を見るかが切り分けの差になります。代表的な追加確認コマンドは次の通りです。

show interfaces
show interfaces counters errors
show ip traffic
show logging
show platform hardware qfp active statistics drop
コマンド 見る場所 分かること
show interfaces input rate/output rate, drops, overruns, errors トラフィック急増、IF異常、ドロップ
show interfaces counters errors CRC, frame, input errors, output errors L1/L2起因の異常を疑える
show ip traffic input, forwarded, dropped, ICMP, fragments 特定種類のパケット急増
show logging 再起動、フラップ、エラー 異常イベントの裏取り
show platform hardware qfp active statistics drop ドロップ理由別カウンタ CPU以外の詰まりや転送面の問題

特にshow interfacesは、単純ですが非常に重要です。インターフェースの入力レートが急に上がっていれば、CPU高騰の背景に通信増加があるかもしれません。CRCやinput errorsが増えていれば、物理・L2側の問題がCPU使用率悪化の間接原因になっていることもあります。

QFP系プラットフォームで見るべきポイント

ISR4KやASR1KなどIOS-XEの一部機種では、従来のCPU表示だけでは実態を読み切れないことがあります。そこで役立つのがQFP関連です。

show platform hardware qfp active datapath utilization
show platform hardware qfp active statistics drop

見るべきポイントは、データプレーン側が詰まっていないかドロップ理由が特定方向に増えていないかです。一般的なCPU表示がそこまで高くなくても、QFP側で詰まりが出ていることがあります。

現場でよくある誤解は、CPUが高い=帯域不足と考えることです。帯域は余っていても、CPU転送や制御プレーン負荷で重くなることはあります。逆に、帯域が高くてもハードウェア転送されていればCPUはそこまで上がらない場合もあります。

Ciscoルータでメモリ使用率を確認するコマンドと見方

全体のメモリ状況を見る基本コマンド

Ciscoでメモリ確認の基本は次です。

show memory statistics

機種やOSによっては次もよく使います。

show processes memory sorted

どこを見るべきかというと、まずは全体のFree memoryが十分あるかです。ただし、空きが少ないだけで即障害とは限りません。問題なのは、空きがずっと減り続ける極端に少ない状態が続くログに確保失敗やプロセス再起動が出る場合です。

メモリはCPUより判断が難しいです。CPUは高い低いが直感的ですが、メモリは「使っている=悪い」ではありません。OSは空きメモリを効率利用することがあるため、使用率だけで異常と断定できません。

確認項目 見るポイント 危険度の考え方
Free memory 極端に少ないか 少ないだけでは断定不可。推移重視
最小空きメモリ 一時的に底を打っていないか 急落していれば要注意
数時間〜数日の推移 右肩下がりか リークやセッション蓄積を疑う
ログ malloc failure、restart、traceback 実害が出ていれば優先度高い

プロセス別メモリを見るときの注意

show processes memory sorted

この出力では、どのプロセスが多くメモリを使っているかを確認できます。見る場所は、上位にいるプロセスが異常に大きいか前回確認時より増えているかです。

ここでの勘違いは、上位にいるだけで悪者扱いすることです。ルーティング、VPN、ログ、管理用プロセスなど、役割上メモリを多く使うものはあります。大事なのは、その機器の平常時と比べて増えているかです。

もし普段の値が分からないなら、その場で断定せず、監視値や過去ログを確認してください。単発のCLI結果だけで「メモリリークだ」と言い切るのは危険です。

Ciscoでメモリ異常を疑うときの具体例

状況 CLI上の見え方 考えられること 対応の方向性
緩やかに空きが減り続ける 数時間〜数日でFreeが右肩下がり リーク、セッション蓄積、ログ蓄積 監視比較、バグ情報確認、再起動計画
急激に空きが減る 直前に大きく悪化 経路大量受信、トラフィック急増、機能有効化 直前変更確認、経路/ログ確認
空きは少ないが安定 高使用率だが変動小さい 正常利用範囲の可能性 実害有無を確認し、経過監視
応答不安定を伴う CLI遅い、保存失敗、プロセス再起動 実害レベルの逼迫 早期保守、退避、再起動判断

FortiGateでCPUとメモリを確認するコマンドと見方

最初に使いやすい基本コマンド

FortiGateでは、まず次のコマンドが使いやすいです。

get system performance status

このコマンドでは、CPU states、Memory、Session数など、全体の健康状態をまとめて確認できます。出力イメージは次のような形です。

CPU states: 12% user 3% system 0% nice 84% idle
Memory: 68%
Average network usage: 1200 kbps in 950 kbps out
Average sessions: 18500
NPU sessions: 14600

どこを見るべきかは、主に次の項目です。

項目 見るポイント 意味 注意点
CPU states idleが十分あるか idleが少ないほど忙しい 一時的な低下か継続かを見る
Memory 高止まりしていないか 高いだけでなく継続性が重要 使用率単体で断定しない
Average sessions 普段より急増していないか 通信増加が負荷の背景かを見る 平常時との差分が重要
NPU sessions オフロード状況の参考 CPU処理偏りのヒント 機種・機能により見え方が変わる

FortiGateでは、CPU使用率そのものより、idleがどれくらい残っているかを見ると判断しやすいです。idleがかなり少ない状態が続くなら、CPU余力が小さいと考えられます。

プロセスごとの負荷を確認する

diagnose sys top

Linuxのtopに近いイメージで、CPUやメモリを使っているプロセスを見られます。必要に応じて更新間隔を指定することもあります。

diagnose sys top 1 20

これは1秒間隔で20回表示する例です。どこを見るべきかは、上位プロセスのCPU%、MEM%、そして同じプロセスが継続して高いかです。

見え方 疑う方向 補足
ipsengine が高い IPSや検査負荷が高い UTM機能の影響を疑う
wad が高い Web/Proxy/SSL関連負荷 SSL深度検査の影響もありうる
miglogd が高い ログ出力負荷 外部ログ転送や大量ログを確認
httpsd / gui系が高い 管理GUIアクセス負荷 管理操作集中や不具合も疑う

FortiGateは有効化している機能で負荷が大きく変わります。UTM機能、SSL復号、アプリ制御、Webフィルタ、IPS、アンチウイルスを多く使っていれば、その分CPUやメモリは増えます。したがって、数値だけでなく、その機器で何を有効にしているかと合わせて読む必要があります。

メモリの詳細確認で使うコマンド

diagnose hardware sysinfo memory

このコマンドではメモリの詳細を確認できます。見るべきポイントは、空きメモリ、バッファやキャッシュの状況、そして明らかな不足傾向があるかです。

FortiGateもCiscoと同じで、メモリ使用率が高いだけで即異常とは限りません。問題なのは、セッション数が増え続けるのにメモリ余裕が減り続ける管理画面やCLIの反応が鈍いプロセス再起動やログ異常が出るといった実害があるケースです。

FortiGateで追加確認したいコマンド

get system session status
diagnose npu np6 session-stats
get system performance firewall statistics
コマンド 見る場所 分かること
get system session status 現在セッション数、上限、TCP/UDP内訳 セッション枯渇や急増の有無
diagnose npu np6 session-stats NPUオフロード状況 CPU処理偏重かどうかの参考
get system performance firewall statistics トラフィック・処理統計 負荷背景の把握

対応機種では、NPUへ十分オフロードされているかが大きな判断ポイントになります。CPUが高いのにNPUオフロードが少ない場合、ポリシーや機能によりCPU処理へ寄っている可能性があります。機種差が大きいため、使えるコマンド名は実機で確認してください。

CPU高騰時の原因を絞る実践フロー|Cisco/FortiGate共通

CPUが高いと分かった後に重要なのは、原因候補を漫然と並べることではなく、順番に消していくことです。以下のフローで見ると外しにくいです。

  1. 瞬間値か継続値かを確認する
  2. 実害があるかを確認する。通信断、遅延、GUI/CLI遅延など
  3. 上位プロセスを確認する
  4. トラフィック量、セッション数、インターフェースエラーを見る
  5. 直前変更を確認する。ポリシー追加、監視強化、VPN増設など
  6. ログで再起動、フラップ、ドロップ、メモリエラーを確認する
  7. 平常時と比較する。監視グラフがあれば必ず見る

特に見落としやすいのが、直前変更です。高負荷の直前にACL追加、SNMPポーリング増加、デバッグ有効化、UTMプロファイル変更、SSL検査有効化などがあれば、原因候補はかなり絞れます。

現場でよくある原因別の見分け方

1. トラフィック急増・セッション急増

特徴は、CPU上昇と同時にインターフェースレートやセッション数も増えることです。

症状 Ciscoで見る場所 FortiGateで見る場所 疑うこと
通信量が急に増えた show interfaces の rate get system performance status 利用増加、バックアップ、異常通信
セッションが急増した 機種依存のセッション確認 get system session status スキャン、攻撃、アプリ暴走
特定方向で多い NetFlow/ACL hit数など ポリシー統計、ログ 特定サーバ向け集中

2. 管理系トラフィックが重い

SNMP、Syslog、GUIアクセス、設定バックアップ、デバッグなど、業務通信以外が原因のことがあります。

たとえばCiscoでSNMP ENGINEが上位なら、監視ポーリング間隔が短すぎないか、監視対象OIDが多すぎないかを確認します。FortiGateでmiglogdが高いなら、ログ転送先停止や大量ログ発生を疑います。

3. 制御プレーンやルーティング処理が重い

BGPやOSPFが不安定だと、CPU高騰の原因になります。隣接断続、経路大量変動、再計算の多発などが典型です。

show ip bgp summary
show ip ospf neighbor
show ip route summary
show logging

見るべきポイントは、neighbor flap経路数急増再計算や隣接再確立ログです。通信量は多くなくても、制御プレーンが不安定ならCPUは上がります。

4. ACL、NAT、トンネル、暗号化処理が重い

CPU転送されやすい処理や、暗号支援が効いていない処理は、帯域自体は大きくなくてもCPUを食います。

機能 高負荷時のヒント 追加確認
ACL IP Input高騰、特定通信集中 ACL hit数、対象通信量
NAT セッション増加と同時にCPU上昇 変換数、セッション統計
GRE/IPsec Crypto系プロセス高騰 トンネルセッション、暗号エンジン
SSL深度検査 FortiGateでwad/ipsengineが高い 対象ポリシー、証明書、対象通信量

正常か異常かを判断するときの実務的な目安

数値だけでなく、次の4条件で判断すると現場で使いやすいです。

観点 見る内容 異常寄りのサイン
継続性 1分・5分・監視グラフ 高負荷が継続する
偏り 特定プロセスや機能 同じものが上位固定
影響 通信遅延、切断、管理遅延 利用者影響が出ている
変化点 直前変更、通信増加、監視変更 発生時刻と一致する変化がある

つまり、継続して高い特定処理に偏る実害がある何かの変化点と一致する、この4つがそろうほど「対応すべき異常」に近づきます。

現場でよくある勘違いと見落とし

CPU使用率だけ見て結論を出す

CPUが高いのは結果であって原因ではありません。高いという事実の次に、どのプロセスか、通信増加か、設定変更直後か、監視取得過多かを見ないと切り分けになりません。

メモリ使用率が高いだけで異常と決める

前述のとおり、メモリは使っていても正常なことがあります。危ないのは、空きが減り続ける、特定プロセスが増え続ける、保存や応答が不安定になるケースです。

瞬間値だけで判断する

1回のCLI出力だけでは、たまたま高かっただけかもしれません。最低でも複数回確認し、できれば監視グラフも見てください。継続性が分からないと誤判定しやすいです。

管理系トラフィックの影響を見落とす

SNMP、Syslog、GUIアクセス、バックアップ、デバッグなど、管理のための処理が負荷要因になることがあります。業務通信だけを疑うと外します。

平常時の値を持っていない

本当はこれが最大の問題です。平常時のCPU、メモリ、セッション数、インターフェースレートが分からないと、異常かどうかの判断精度が落ちます。監視がない環境でも、繁忙時間帯と通常時間帯のCLI出力を採取しておくと後で効きます。

障害対応で使いやすい確認フロー|迷ったらこの順番

実際の一次切り分けで使いやすい流れを、機器共通で整理すると次の通りです。

  1. 利用者症状を確認する。遅いのか、切れるのか、管理画面が重いのかを切り分ける
  2. CPU全体使用率を見る。瞬間値と平均値の両方を見る
  3. メモリ全体使用率と空き状況を見る
  4. プロセス別CPU・メモリを確認する
  5. セッション数、トラフィック量、インターフェースエラーを見る
  6. 設定変更直後か、監視やログ取得が増えていないか確認する
  7. 過去監視と比較して、いつから上がったかを確認する
  8. 必要に応じてベンダードキュメントや既知不具合を確認する

この流れにすると、「CPUが高い」から始まっても、単なる数値確認で終わらず、原因の方向性まで見えてきます。

すぐ使える確認コマンド一覧

機器 目的 コマンド 見るべきポイント 次のアクション
Cisco CPU全体・プロセス show processes cpu sorted 5秒/1分/5分、上位プロセス、interrupt show ip traffic / show interfaces
Cisco メモリ全体 show memory statistics Free memory、減少傾向 過去値比較、ログ確認
Cisco プロセス別メモリ show processes memory sorted 特定プロセスの増加 平常時比較
Cisco 通信量・エラー show interfaces rate、drops、errors IF異常、通信増加の確認
Cisco IP統計 show ip traffic input、drop、ICMP、fragment 異常パケット傾向の把握
Cisco QFPドロップ show platform hardware qfp active statistics drop ドロップ理由別増加 転送面の詰まり確認
FortiGate 全体状況 get system performance status CPU states、Memory、Sessions、NPU sessions 継続性と平常時比較
FortiGate プロセス負荷 diagnose sys top CPU%、MEM%、継続性 高い機能の洗い出し
FortiGate メモリ詳細 diagnose hardware sysinfo memory 空き状況、不足傾向 推移確認、ログ確認
FortiGate セッション状況 get system session status 現在数、上限に対する余裕 増加要因の特定
FortiGate NPU状況 diagnose npu np6 session-stats オフロード状況 CPU偏重か確認

監視がある場合に見るべきグラフ

CLIだけでも切り分けはできますが、監視があるなら必ず次のグラフも見てください。CLI単発確認の弱点は「いつから」「どれくらい続いているか」が見えにくいことです。

監視項目 見る理由 読み方
CPU使用率 継続負荷か瞬間負荷か分かる 発生時刻と症状時刻が一致するか
メモリ使用率 減少傾向が分かる 右肩下がりなら要注意
帯域使用率 負荷背景を把握できる CPU上昇と同時に増えているか
セッション数 通信集中や異常通信の判断材料 平常時比の急増を見る
エラーカウンタ L1/L2問題の切り分け CRCやdropの増加有無

監視グラフとCLIが一致して初めて、自信を持って「継続高負荷」「一時負荷」「セッション増加起因」などと言えます。

まとめ|コマンドを知るだけでは足りない

CPUやメモリ確認は、コマンドを知っているだけでは足りません。どこを見るか瞬間値と平均値をどう分けるか次にどのコマンドで深掘りするか症状とどう結びつけるかまで分かって初めて、実務で使える知識になります。

特に重要なのは次の3点です。

  • CPUは5秒だけで判断しない。1分・5分も見る
  • メモリは使用率だけでなく、空きの推移と実害を見る
  • 高い数値の次に、プロセス・セッション・トラフィック・ログへ進む

もし機器が重いと感じたら、この記事の順序で見ていけば、少なくとも「何を見ればよいか分からない」という状態は避けられます。現場で本当に役立つのは、コマンド暗記ではなく、確認順序と読み方です。

関連記事