Linux初心者がまず覚える監視コマンド|CPUやメモリの使いすぎを調べるtop入門

監視・アラート
スポンサーリンク

サーバーやパソコンを使っていると、「なんだか動作が重い」「アプリがすぐに固まる」と感じることはありませんか。とくにクラウドやVPSを契約してLinuxを触り始めたばかりの方にとっては、原因が分からないまま不安になることも多いでしょう。

そんなときに役立つのが、Linuxに標準で搭載されている top コマンド です。topを使えば、CPUやメモリの使用率、実行中のプロセスの状態をリアルタイムで確認でき、「どのプログラムが負荷をかけているのか」を数値で把握できます。

体感的に「遅い」と感じるだけでは問題の切り分けはできません。しかし、topを知っていれば「このプロセスがCPUを90%使っている」「メモリがほとんど残っていない」といった根拠を持って判断できます。これは初心者にとって運用上の安心感につながり、チームで作業をする際の説明材料にもなります。

この記事では、Linux初心者が最初に覚えておくべき監視コマンドとしてtopを紹介し、CPUやメモリの使いすぎを調べる基本操作から実際の活用シーンまでを分かりやすく解説します。

なぜ「top」コマンドを覚えるべきなのか

サーバーやPCが重いときに役立つ

Linux環境を使っていると、ある日突然「動作が重い」「処理が遅い」と感じる瞬間があります。原因はさまざまで、アプリケーションがリソースを独占している場合もあれば、バックグラウンドで大量の処理が走っているケースもあります。こうした場面で、どのプロセスがどれだけCPUやメモリを消費しているのかを即座に確認できるのがtopコマンドです。体感ではなく「具体的に何が負荷の原因か」を数秒で突き止められる点が大きな魅力です。

初心者でもすぐに使える安心感

topはLinuxに標準で搭載されているため、追加インストールの必要がなく、すぐに利用できます。操作も「コマンドを打つ→画面が出る→数値を読む」というシンプルな流れなので、難しい知識がなくても活用可能です。複雑な監視ツールや設定を学ぶ前に、まずはtopを覚えるだけで「サーバーの状態を確認できる」という安心感が得られます。

「感覚」ではなく「数値」で説明できる

システムが遅いと感じたとき、「なんとなく重い」と口頭で説明するだけでは説得力に欠けます。topを使えば「CPU使用率が90%を超えている」「メモリ残量がわずかしかない」といった具体的な数値を提示できます。これにより、上司や顧客への報告、あるいはチーム内でのトラブルシューティングにおいて、客観的な根拠を持った説明ができるようになります。これは初心者にとって大きな武器となり、信頼感にもつながります。

topコマンドで見える情報の基本

CPU使用率の確認方法

topの画面上部には、CPUの使用状況がパーセンテージで表示されます。usはユーザープロセス、syはシステムプロセスがどの程度CPUを利用しているかを示し、idはアイドル状態、つまりCPUがどれだけ休んでいるかを意味します。もしussyが高く、idがほとんどゼロに近い場合は、CPUに余裕がない状態です。特定のプロセスが異常に高いCPU使用率を示している場合、そのプログラムがシステムの遅さの原因と考えられます。初心者にとっても「どの数字を見ればいいか」が分かれば、直感的に状況を把握できるでしょう。

メモリ・スワップの使用状況

CPUに次いで重要なのがメモリの監視です。topの上部には「Mem」や「Swap」といった行があり、全体のメモリ総量、使用中の量、空き容量などが表示されます。メモリ使用量がほぼ一杯になっていると、システムはスワップ領域を使い始めます。スワップとは、ディスクを仮想的にメモリとして利用する仕組みですが、処理速度が大きく低下するため「サーバーが急に遅くなる」典型的な原因です。定期的にtopでメモリの残量を確認する習慣をつけると、予兆に気づきやすくなります。

プロセスごとの負荷(どのアプリが重いのか)

topの画面下部には、現在実行中のプロセスが一覧表示されます。各プロセスにはPID(プロセスID)、ユーザー、CPU使用率(%CPU)、メモリ使用率(%MEM)、実行時間などが並びます。この情報から「どのアプリケーションがリソースを多く消費しているのか」を瞬時に把握できます。たとえばWebサーバーが異常にCPUを消費している場合、アクセス集中やアプリの不具合が疑われますし、データベースが大きなメモリを専有しているなら、設定見直しや最適化が必要かもしれません。こうした観点を持てるだけでも、Linux初心者が「運用者の目」を持つ第一歩になります。

topコマンドの基本的な使い方

起動と終了(topとq)

topコマンドの起動はとてもシンプルです。

top

と入力するだけで、システムの状態がリアルタイムに表示されます。
終了するときは qキー を押すだけ。覚えることは少なく、初心者でもすぐに試せます。

表示の更新間隔を変更する(-dオプション)

デフォルトでは、画面は 3秒ごと に更新されます。もし「もっと早く状態を知りたい」「逆にゆっくり確認したい」と感じたら、-dオプションで更新間隔を調整できます。

  • 1秒ごとに更新 top -d 1
  • 5秒ごとに更新 top -d 5

システムの状況に応じて、観察しやすい間隔に設定すると便利です。

ユーザーやプロセスを絞り込む方法

全てのプロセスが表示されると、数が多すぎて把握しにくいことがあります。
そんなときは ユーザーや特定のプロセス に絞り込んで表示すると効率的です。

  • 特定ユーザーのプロセスだけを表示 top -u apache
  • 特定のPIDを指定して監視 top -p 1234

これにより、問題がありそうなアプリケーションだけに集中して監視できます。


ポイントまとめ

  • topで起動、qで終了 ― これが基本の流れ
  • -dで更新間隔を自由に調整
  • -u-pで見たい対象だけに絞り込み

Linuxに触れ始めた方でも、この基本操作を覚えるだけで「自分でサーバーを監視している」という感覚が得られるはずです。

top実行中に使える便利な操作

topコマンドは、ただ眺めるだけでなく、実行中にさまざまなキー操作で表示を切り替えたり並び替えたりできます。これを知っているかどうかで、トラブル対応のスピードが大きく変わります。

CPUやメモリで並び替える(P・Mキー)

プロセスが多いときに便利なのが ソート機能 です。

  • Pキー … CPU使用率の高い順に並び替え
  • Mキー … メモリ使用量の多い順に並び替え

例えば「サーバーが重い原因はCPUか、それともメモリか?」を判断したいとき、ワンタッチで切り替えられるのは非常に役立ちます。

特定プロセスを終了させる(kキー)

topから直接プロセスを終了させることも可能です。

  1. kキーを押す
  2. 終了したい PID を入力
  3. 送信するシグナル(通常は15)を指定

もしアプリケーションが暴走してCPUを独占している場合、この操作で強制終了できます。ただし誤って重要なプロセスを止めないよう、慎重に扱う必要があります。

CPUコアごとの利用状況を確認する(1キー)

マルチコアCPUを搭載している環境では、1キー を押すとコアごとの利用率を表示できます。

  • 全体の使用率だけでは見えなかった「特定のコアに負荷が集中している状態」を把握できる
  • 並列処理を行うプログラムの動きを確認するのに便利

クラウドやVPSでは、割り当てられたCPUコア数が限られているため、この情報はリソース管理に直結します。

その他の便利なキー操作

  • Tキー … 実行時間の長い順に並び替え
  • rキー … プロセスの優先度(nice値)を変更
  • hキー … ヘルプ表示(操作一覧を確認できる)

まとめると:

  • PMで「CPU重いのか、メモリ不足か」を切り替え
  • kで暴走プロセスを安全に終了
  • 1でコアごとの利用率を確認

これらを知っておくと、「topを開いた瞬間に状況を整理できる力」が身につきます。

実務でよくある活用シーン

サーバーが遅いときに原因を調べる

Webサーバーやアプリケーションサーバーを運用していると、利用者から「ページが重い」「反応が遅い」といった問い合わせを受けることがあります。こうしたときにtopを実行すれば、CPUやメモリを大量に消費しているプロセスを一目で確認できます。例えば、特定のPHPプロセスがCPUを90%以上使っている場合はアプリケーション側の処理が問題かもしれませんし、データベースがメモリを独占しているならクエリの最適化が必要です。このように、遅さの原因を「勘」ではなく「数値」で判断できることが最大の利点です。

メモリ不足やスワップ発生の監視

システムが急に不安定になったとき、原因の多くはメモリ不足にあります。topではメモリの使用量に加えて、スワップ領域の使用状況も確認可能です。もしスワップが大量に使われていれば、物理メモリが不足しているサインです。これを見つけられるだけでも「サーバー増強すべきか」「アプリの設定を見直すべきか」といった判断につながります。

定期的に状態を記録してチームで共有

topは通常リアルタイムで監視するツールですが、バッチモード(-bオプション) を使えば、結果をファイルに保存することができます。

top -b -n 1 > status.txt

このようにして定期的にログを残しておけば、障害が発生したときに「どの時点から負荷が高まっていたのか」を振り返ることが可能です。チームで情報を共有するときにも役立ち、再発防止の手掛かりになります。

開発環境でも役立つ

実務だけでなく、開発中の環境でもtopは活躍します。例えばローカルでプログラムを実行して「思った以上にCPUを食っているな」と気づけば、コードの改善ポイントを見つけやすくなります。サーバー管理者だけでなく、開発者にとってもパフォーマンス改善のヒントを得られる便利なコマンドです。

初心者がつまずきやすいポイントと注意点

数値の意味を正しく理解する(CPU%やload average)

topを開くと、たくさんの数値が並んでいて「どこを見ればいいのか分からない」と戸惑う人も多いです。特に注意したいのが CPU使用率load average の違いです。

  • %CPU … プロセスごとのCPU使用率を示す
  • load average … 一定時間内に処理待ちとなったプロセスの平均数を示す

例えばCPU使用率が低くても、load averageが高い場合は「CPU待ちではなくI/O(ディスク読み書きなど)が原因で遅くなっている」ケースもあります。数値の意味を正しく理解することで、誤解のない判断ができるようになります。

topで見えるのは“今この瞬間”だけ

topはリアルタイムの状態を監視するツールです。そのため、過去に何が起きていたのかを振り返ることはできません。サーバーが一時的に高負荷になった後に落ち着いてしまうと、topでは原因をつかめないこともあります。こうした場合はログ監視や専用のモニタリングツールと組み合わせることが大切です。

常駐監視やログ収集には別ツールが必要

サーバーの安定運用を目指すなら、topだけに頼るのは不十分です。

  • 長期的な監視やアラート通知 → htopglances、あるいは Prometheus+Grafana などの監視ツール
  • ログの自動収集や可視化 → systemd-journaldELKスタック(Elasticsearch, Logstash, Kibana)

topはあくまで「その場で原因を確認する即席の道具」として使い、常駐監視やアラートには他の仕組みを取り入れることをおすすめします。

プロセスを終了させる操作は慎重に

kキーを使えば簡単にプロセスを終了できますが、必要なシステムプロセスを止めてしまうとサーバーが落ちてしまう危険があります。初心者は特に「重要そうなプロセスには手を出さない」という意識を持ち、必要であれば上級者やチームに相談してから実行するのが安全です。

これらの注意点を押さえておけば、topを使うときに「数字は見えるけれど意味が分からない」「誤って重要なプロセスを止めてしまった」といった失敗を避けられるでしょう。

他の監視コマンドとの違い

psとの比較(静的 vs 動的)

psコマンドもプロセスの状態を表示できますが、これは「実行した瞬間のスナップショット」を出力するだけです。一方、topは数秒ごとに画面を更新し、動的に変化するCPUやメモリの利用状況を確認できます。

  • ps … 一度きりの情報を取得(ログ収集や一時確認向け)
  • top … リアルタイムで状態を監視(原因調査や緊急対応向け)

どちらもプロセス管理に欠かせないコマンドですが、用途は異なります。日常的な監視や「今まさに重い」状況を追いかけるならtopの方が適しています。

htopとの比較(見やすさ・操作性)

htoptopをより直感的にしたツールです。色分けされた画面やカーソルで選択できる操作性があり、初心者にとって理解しやすいのが特徴です。また、マウスで操作できる環境もあり、プロセス終了や優先度変更も簡単です。

  • top … 標準搭載、軽量、どの環境でも必ず使える
  • htop … 見やすく操作しやすいが、別途インストールが必要

学習や実務の最初の一歩はtop、慣れてきたらhtopへ移行すると理解がスムーズに進みます。

専用監視ツールとの違い

NagiosやZabbix、Prometheusといった監視ツールは、システム全体を常時監視し、異常を検知して通知する仕組みを提供します。topはあくまで「その場で即座に状態を知るためのコマンド」なので、障害対応の第一歩として活用し、長期的な監視には専用ツールを組み合わせるのがベストです。

こうした比較を理解しておくと、「なぜtopを使うのか」「いつ他のツールに切り替えるべきか」が明確になり、無駄なく効率的な運用ができるようになります。

まとめ:最初の一歩はtopから

Linuxでのサーバー管理や開発を始めたばかりの人にとって、「システムが遅いときにどう調べればいいのか」は大きな壁です。そんなときに頼りになるのが、標準で搭載されているtopコマンドです。

  • CPUやメモリの使用状況をリアルタイムで把握できる
  • どのプロセスがリソースを消費しているか一目で分かる
  • 感覚的な「重い」ではなく、数値で状況を説明できる

これらの特徴により、初心者でもサーバー運用やトラブル対応に自信が持てるようになります。

もちろんtopだけですべてを解決できるわけではありません。ログ収集やアラート通知といった恒常的な監視には、専用ツールを組み合わせる必要があります。しかし「まずは何を見ればよいか」という入り口として、topは最も手軽で強力なコマンドです。

Linuxに触れたばかりで右も左も分からないときでも、topさえ知っていれば「サーバーの状態を把握できる」という安心感が得られます。これが、エンジニアとして成長していくうえでの大きな第一歩となるでしょう。

参考・参照リンク

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする