[Linux] topコマンドの使い方 – 実行中プロセス一覧の表示・管理

topコマンドは、Linuxシステムで実行中のプロセスやシステムリソースの使用状況をリアルタイムで表示・管理するためのツールです。

コマンドを実行すると、CPU使用率、メモリ使用量、実行中のプロセス数などが表示されます。

プロセスはPID、ユーザー、優先度、メモリ使用量などの情報と共にリストされます。

qで終了、kでプロセスの終了、rでプロセスの優先度変更が可能です。

この記事でわかること
  • topコマンドの基本的な使い方
  • プロセスの詳細情報の確認方法
  • リアルタイムでのリソース監視
  • 各種オプションによるカスタマイズ
  • 他のプロセス管理コマンドとの違い

目次から探す

topコマンドとは

topコマンドは、LinuxやUnix系のオペレーティングシステムで実行中のプロセスをリアルタイムで監視するためのツールです。

このコマンドを使用することで、CPUやメモリの使用状況、各プロセスのリソース消費量を確認することができます。

topコマンドは、システムのパフォーマンスを把握し、リソースを効率的に管理するために非常に便利です。

特に、サーバーの運用や開発環境でのトラブルシューティングに役立ちます。

コマンドを実行すると、プロセスの一覧が表示され、リアルタイムで更新されるため、システムの状態を常に把握することが可能です。

topコマンドの画面構成

topコマンドを実行すると、画面上部にはシステムの概要情報が表示され、その下に実行中のプロセスの一覧が表示されます。

top - 11:43:11 up 11:39,  1 user,  load average: 0.00, 0.01, 0.00
Tasks:  24 total,   1 running,  23 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  32009.8 total,  30914.1 free,    924.4 used,    551.6 buff/cache
MiB Swap:   8192.0 total,   8192.0 free,      0.0 used.  31085.4 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      1 root      20   0   21804  13184   9552 S   0.0   0.0   0:00.71 systemd
      2 root      20   0    2616   1512   1384 S   0.0   0.0   0:00.00 init-systemd(Ub
      6 root      20   0    2616    132    132 S   0.0   0.0   0:00.00 init
     48 root      19  -1   66836  21000  19868 S   0.0   0.1   0:00.61 systemd-journal
     91 root      20   0   23992   6036   4832 S   0.0   0.0   0:00.14 systemd-udevd
    140 systemd+  20   0   21452  11716   9524 S   0.0   0.0   0:00.11 systemd-resolve
    141 systemd+  20   0   91020   6504   5652 S   0.0   0.0   0:00.30 systemd-timesyn
    156 root      20   0    4236   2676   2428 S   0.0   0.0   0:00.02 cron
    157 message+  20   0    9628   5160   4468 S   0.0   0.0   0:00.38 dbus-daemon

以下に、各部分の詳細を説明します。

上部のシステム情報

上部には、システム全体のリソース使用状況が表示されます。

主な情報は以下の通りです。

CPU使用率の表示

CPU使用率は、システム全体のCPUがどれだけ使用されているかを示します。

通常、ユーザーによるプロセス、システムによるプロセス、アイドル状態のCPUの割合が表示されます。

これにより、CPUの負荷状況を把握できます。

メモリ使用量の表示

メモリ使用量は、物理メモリの使用状況を示します。

使用中のメモリ、空きメモリ、バッファやキャッシュに使用されているメモリの量が表示され、システムのメモリリソースの状態を確認できます。

スワップ領域の使用状況

スワップ領域は、物理メモリが不足した際に使用されるディスク上の領域です。

スワップの使用状況を確認することで、メモリ不足の問題を早期に発見することができます。

プロセス一覧の表示

画面の下部には、実行中のプロセスの詳細が一覧表示されます。

主な項目は以下の通りです。

PID(プロセスID)

各プロセスに割り当てられた一意の識別番号です。

プロセスを特定するために使用されます。

ユーザー名(USER)

プロセスを実行しているユーザーの名前が表示されます。

これにより、どのユーザーがどのプロセスを実行しているかを確認できます。

CPU使用率(%CPU)

各プロセスがCPUをどれだけ使用しているかの割合を示します。

高い値は、そのプロセスがCPUリソースを多く消費していることを意味します。

メモリ使用量(%MEM)

各プロセスが使用しているメモリの割合を示します。

これにより、どのプロセスがメモリを多く消費しているかを把握できます。

実行時間(TIME+)

プロセスが実行されている時間を示します。

これにより、プロセスの稼働時間を確認できます。

コマンド名(COMMAND)

実行中のプロセスのコマンド名が表示されます。

これにより、どのプログラムが実行されているかを確認できます。

topコマンドの基本操作

topコマンドは、システムのプロセスをリアルタイムで監視するための強力なツールです。

ここでは、基本的な操作方法について説明します。

topコマンドの起動方法

topコマンドを起動するには、ターミナルを開いて以下のコマンドを入力します。

top

このコマンドを実行すると、プロセスの一覧が表示され、システムのリソース使用状況がリアルタイムで更新されます。

topコマンドの終了方法 (qキー)

topコマンドを終了するには、表示されている画面でqキーを押します。

これにより、topコマンドが即座に終了し、ターミナルのプロンプトに戻ります。

プロセスの並び替え (Pキー、Mキー)

プロセスの表示を並び替えることができます。

以下のキーを使用します。

  • Pキー:CPU使用率で並び替え
  • Mキー:メモリ使用量で並び替え

これにより、リソースを多く消費しているプロセスを簡単に特定できます。

プロセスの優先度変更 (rキー)

特定のプロセスの優先度を変更するには、rキーを押します。

次に、優先度を変更したいプロセスのPIDを入力し、新しい優先度を指定します。

優先度は、-20(最高)から19(最低)までの範囲で設定できます。

プロセスの終了 (kキー)

実行中のプロセスを終了するには、kキーを押します。

次に、終了したいプロセスのPIDを入力し、終了シグナルを指定します。

デフォルトでは、15(TERMシグナル)が使用されますが、強制終了する場合は9(KILLシグナル)を指定できます。

表示の更新間隔の変更 (dキー)

topコマンドの表示更新間隔を変更するには、dキーを押します。

次に、希望する更新間隔(秒数)を入力します。

これにより、プロセス情報の更新頻度を調整できます。

デフォルトの更新間隔は3秒です。

topコマンドのオプション

topコマンドには、さまざまなオプションが用意されており、特定のニーズに応じて表示内容をカスタマイズできます。

以下に、主なオプションを紹介します。

topコマンドの主なオプション

-d:更新間隔の指定

-dオプションを使用すると、表示の更新間隔を秒単位で指定できます。

例えば、1秒ごとに更新したい場合は、以下のようにコマンドを実行します。

top -d 1

これにより、1秒ごとにプロセス情報が更新されます。

-p:特定のプロセスIDを監視

-pオプションを使用すると、特定のプロセスID(PID)のみを監視できます。

例えば、PIDが1234のプロセスを監視する場合は、以下のようにコマンドを実行します。

top -p 1234

これにより、指定したプロセスの情報だけが表示されます。

-u:特定のユーザーのプロセスを表示

-uオプションを使用すると、特定のユーザーが実行しているプロセスのみを表示できます。

例えば、ユーザー名がuser1の場合は、以下のようにコマンドを実行します。

top -u user1

これにより、user1が実行しているプロセスの情報が表示されます。

-n:指定回数で終了

-nオプションを使用すると、指定した回数だけ表示を更新した後に自動的に終了します。

例えば、5回更新した後に終了する場合は、以下のようにコマンドを実行します。

top -n 5

これにより、5回の更新後にtopコマンドが終了します。

オプションの組み合わせ例

複数のオプションを組み合わせて使用することも可能です。

例えば、特定のユーザーのプロセスを1秒ごとに更新し、5回だけ表示する場合は、以下のようにコマンドを実行します。

top -u user1 -d 1 -n 5

このコマンドにより、user1が実行しているプロセスが1秒ごとに更新され、5回の更新後に自動的に終了します。

オプションを組み合わせることで、より柔軟にプロセスの監視が可能になります。

topコマンドのカスタマイズ

topコマンドは、表示内容をカスタマイズすることで、ユーザーのニーズに合わせた情報を提供します。

以下に、カスタマイズの方法を説明します。

表示項目のカスタマイズ (fキー)

topコマンドの表示項目をカスタマイズするには、fキーを押します。

これにより、表示される項目のリストが表示され、各項目の選択や非表示を設定できます。

選択したい項目の前にあるスペースを押すことで、表示/非表示を切り替えられます。

設定が完了したら、Enterキーを押して変更を適用します。

表示形式の変更 (tキー、mキー)

表示形式を変更するには、以下のキーを使用します。

  • tキー:システム情報の表示を切り替えます。

これにより、CPUやメモリの使用状況を詳細に表示するか、簡略表示に切り替えることができます。

  • mキー:メモリの使用状況の表示形式を切り替えます。

これにより、物理メモリやスワップ領域の情報を異なる形式で表示できます。

これらのキーを使用することで、必要な情報を見やすく表示できます。

色のカスタマイズ (zキー)

topコマンドの表示色をカスタマイズするには、zキーを押します。

これにより、色の設定メニューが表示され、CPU使用率やメモリ使用量などの色を変更できます。

色を変更することで、視認性を向上させ、重要な情報を強調することができます。

設定の保存 (Wキー)

カスタマイズした設定を保存するには、Wキーを押します。

これにより、現在の設定が~/.toprcというファイルに保存され、次回topコマンドを実行した際に自動的に適用されます。

これにより、毎回設定を行う手間を省くことができます。

設定をリセットしたい場合は、このファイルを削除することでデフォルト設定に戻すことができます。

topコマンドの応用例

topコマンドは、システムの監視だけでなく、特定のニーズに応じたさまざまな応用が可能です。

以下に、いくつかの応用例を紹介します。

特定のプロセスを監視する方法

特定のプロセスを監視するには、-pオプションを使用します。

例えば、PIDが1234のプロセスを監視したい場合は、以下のようにコマンドを実行します。

top -p 1234

これにより、指定したプロセスの情報のみが表示され、他のプロセスは無視されます。

特定のプロセスの動作を詳細に監視したい場合に便利です。

リソース消費の多いプロセスを特定する方法

topコマンドを使用して、リソース消費の多いプロセスを特定するには、起動後にPキーを押してCPU使用率で並び替えます。

これにより、CPUを最も多く使用しているプロセスが上部に表示されます。

同様に、Mキーを押すことでメモリ使用量で並び替えることもできます。

これにより、リソースを大量に消費しているプロセスを迅速に特定できます。

バッチモードでの使用 (-bオプション)

topコマンドをバッチモードで使用するには、-bオプションを指定します。

バッチモードでは、プロセス情報が標準出力に出力され、リアルタイムの更新は行われません。

例えば、以下のようにコマンドを実行します。

top -b -n 1

このコマンドは、1回だけプロセス情報を出力し、終了します。

スクリプトやログファイルに出力する際に便利です。

topコマンドの出力をファイルに保存する方法

topコマンドの出力をファイルに保存するには、バッチモードを使用し、リダイレクトを利用します。

以下のようにコマンドを実行します。

top -b -n 1 > top_output.txt

このコマンドは、1回のプロセス情報をtop_output.txtというファイルに保存します。

これにより、後でプロセスの状態を確認したり、分析したりすることができます。

topコマンドと他のプロセス管理コマンドの比較

topコマンドは、LinuxやUnix系システムでプロセスを監視するための重要なツールですが、他にも多くのプロセス管理コマンドがあります。

ここでは、topコマンドと他の代表的なコマンドとの違いを比較します。

topコマンドとpsコマンドの違い

スクロールできます
特徴topコマンドpsコマンド
リアルタイム更新ありなし
表示形式動的(リアルタイムで更新)静的(コマンド実行時のスナップショット)
使用目的システム全体の監視特定のプロセスの情報取得
表示情報の詳細度詳細なリソース使用状況基本的なプロセス情報

topコマンドはリアルタイムでプロセスの情報を更新し、システム全体のリソース使用状況を把握するのに適しています。

一方、psコマンドは特定の時点でのプロセス情報を取得するため、スクリプトやログの取得に便利です。

topコマンドとhtopコマンドの違い

スクロールできます
特徴topコマンドhtopコマンド
インターフェーステキストベースカラフルなテキストベースのインターフェース
操作性キーボード操作のみマウス操作も可能
プロセスの操作限定的(優先度変更、終了など)より多くの操作が可能
カスタマイズ性限定的高い(表示項目や色の変更など)

htopコマンドは、topコマンドの拡張版であり、より視覚的で使いやすいインターフェースを提供します。

マウス操作が可能で、プロセスの操作やカスタマイズが容易です。

topコマンドとvmstatコマンドの違い

スクロールできます
特徴topコマンドvmstatコマンド
表示情報プロセス情報とリソース使用状況システム全体のメモリ、CPU、I/Oの統計
リアルタイム更新ありあり(指定した間隔で更新)
使用目的プロセスの監視システムのパフォーマンス分析
詳細度プロセスごとの詳細情報システム全体の統計情報

vmstatコマンドは、システム全体のメモリ、CPU、I/Oの統計情報を提供し、パフォーマンスの分析に役立ちます。

topコマンドはプロセスごとの詳細な情報を提供するため、用途に応じて使い分けることが重要です。

よくある質問

topコマンドで特定のプロセスを終了するには?

topコマンドで特定のプロセスを終了するには、以下の手順を行います。

  1. topコマンドを実行し、終了したいプロセスのPIDを確認します。
  2. kキーを押します。
  3. 終了したいプロセスのPIDを入力します。
  4. 終了シグナルを指定します(デフォルトは15で、強制終了する場合は9を指定します)。
  5. Enterキーを押してプロセスを終了します。

この手順により、指定したプロセスを終了することができます。

topコマンドの表示が更新されない場合の対処法は?

topコマンドの表示が更新されない場合、以下の点を確認してください。

  • 更新間隔の設定dキーを押して、更新間隔が適切に設定されているか確認します。

デフォルトは3秒です。

  • システムの負荷:システムが非常に高負荷の場合、topコマンドの更新が遅れることがあります。

リソースの使用状況を確認してください。

  • ターミナルの問題:ターミナルの表示に問題がある場合、ターミナルを再起動するか、別のターミナルを使用して再度topコマンドを実行してみてください。

これらの確認を行うことで、表示が更新されない問題を解決できる可能性があります。

topコマンドでCPU使用率が100%を超えるのはなぜ?

topコマンドでCPU使用率が100%を超える場合、以下の理由が考えられます。

  • マルチコアCPU:CPU使用率は、各コアの使用率を合計した値として表示されることがあります。

例えば、4コアのCPUの場合、合計使用率が400%になることがあります。

  • プロセスの異常:特定のプロセスが異常にリソースを消費している場合、CPU使用率が高くなることがあります。

この場合、該当プロセスを特定し、必要に応じて終了することが重要です。

  • システムの負荷:システム全体の負荷が高い場合、CPU使用率が高くなることがあります。

リソースを消費しているプロセスを確認し、適切な対策を講じる必要があります。

これらの要因を考慮し、CPU使用率が高い原因を特定することが重要です。

まとめ

この記事では、topコマンドの基本的な使い方や画面構成、オプション、カスタマイズ方法、応用例、他のプロセス管理コマンドとの比較について詳しく解説しました。

これにより、システムのプロセスを効率的に監視し、管理するための手法を学ぶことができました。

今後は、実際にtopコマンドを活用して、システムのパフォーマンスを向上させるための具体的なアクションを試みてみてください。

  • URLをコピーしました!
目次から探す