hana_shinのLinux技術ブログ

Linuxの技術情報を掲載しています。特にネットワークをメインに掲載していきます。

topコマンドの使い方



1 topコマンドとは?

実行中のプロセスの状態をリアルタイムで表示するコマンドです。

2 検証環境

CentOS版数は以下のとおりです。仮想マシンは最小構成で作成しました。

[root@server ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

カーネル版数は以下のとおりです。

[root@server ~]# uname -r
3.10.0-1160.el7.x86_64

3 実行方法/終了方法

[root@server ~]# top

topコマンドを実行すると、下記のような画面が表示されます。Ctrl+Cを押下すると、topコマンドを終了することができます。

4 ヘルプの表示、終了方法

hを押下すると、下記ヘルプ画面が表示されます。ESCまたはqを押下すると、ヘルプ画面が終了して、元の画面に戻ります。

5 フィルタリングの使い方(u) その1

uは表示するプロセスを実行ユーザ名で絞り込むオプションです。uを押下して、絞り込みをしたい実効ユーザ名を入力します。ここでは、実行ユーザ名にapacheを入力しました。

apacheを入力して、Enterを入力すると、実効ユーザ名がapacheのプロセスだけが表示されていることがわかります。元の状態に戻すには、Shiftを押下したまま、=を押下します。

6 フィルタリングの使い方(o) その2

6.1 CPU使用率で絞り込む方法

事前準備として、CPU使用率が30%,60%のプロセスを起動します。stress-ngコマンドの使い方は、stress-ngコマンドの使い方 - hana_shinのLinux技術ブログを参照してください。

CPU使用率が30%のプロセスを1つ起動します。

[root@server ~]# stress-ng -c 1 -k -l 30 -q &
[1] 1550

CPU使用率が60%のプロセスを1つ起動します。

[root@server ~]# stress-ng -c 1 -k -l 60 -q &
[2] 1552

起動したプロセスのCPU使用率を確認します。psコマンドの使い方は、psコマンドの使い方を参照してください。

[root@server ~]#  ps -C stress-ng -o comm,pid,ppid,%cpu
COMMAND            PID   PPID %CPU
stress-ng         1550   1516  0.0
stress-ng         1551   1550 30.2
stress-ng         1552   1516  0.0
stress-ng         1553   1552 58.7

次に、topコマンドでプロセスのCPU使用率を確認します。CPU使用率が20%より大きなプロセスだけを表示してみます。oを押下したあと、%CPU>20.0と入力します。タイプミスした場合、DELでタイプミスした文字を削除することができます。


次にEnterを押します。事前準備で起動した2つのプロセスが表示されていることがわかります。元の状態に戻すには、Shiftを押下したまま、=を押下します。

6.2 PIDで絞り込む方法

PIDが10未満のプロセスだけを表示してみます。oを押下したあと、PID<10と入力します。

次にEnterを押します。PIDが10未満のプロセスだけが表示されていることがわかります。元の状態に戻すには、Shiftを押下したまま、=を押下します。

6.3 COMMAND名で絞り込む方法

COMMAND名にsystemdを含むプロセスを表示してみます。oを押下したあと、COMMAND=systemdと入力します。

次にEnterを押します。COMMAND名にsystemdを含むプロセスだけが表示されていることがわかります。元の状態に戻すには、Shiftを押下したまま、=を押下します。

7 フィールドのカスタマイズ方法(Fields Management)

7.1 項目を追加する方法

topコマンドを実行すると、下記赤枠で囲まれた項目が、デフォルトで表示されます。ここでは、デフォルトで表示される項目の変更方法を説明します。

fを押下すると、下記画面が表示されます。
・黄色の項目:現在(7.1の赤枠内)表示されている項目
・白色の項目:追加で表示できる項目

ここでは、CPUの使用時間(TIME)を表示してみます。矢印キーを使って、TIMEのところまで、カーソルを移動します。TIMEのところで、SPACEを押下すると、以下の画面になります。

次にESCを押下すると、下記画面に戻ります。右端に、TIME項目が表示されるようになったことがわかります。stress-ngプロセスは、各々下記時間だけCPUを使用したことがわかります。
・CPU使用率を60%に設定したプロセス:14分56秒
・CPU使用率を30%に設定したプロセス:7分30秒

7.2 項目を削除する方法

7.1で追加したTIMEの項目を削除してみます。fを押下して、下記画面を表示します。そして、矢印キーを使って、TIME項目にカーソルを移動します。

SPACEを押下します。選択した項目が黄色から白色にかわったことを確認します。

ESCを押下すると、下記画面に戻ります。TIME項目が削除されたことがわかります。

8 設定を保存する方法(W)

Shiftを押下したまま、wを押下すると、設定を保存することができます。次回、topコマンド実行時、保存した設定で実行することができます。ここでは、TIMEをデフォルトで表示するようにしてみます。なお、保存した設定は、ログインディレクトリ配下の.toprcファイルに保存されます。

Shiftを押下したまま、wを押下して、設定を保存します。このとき、topの画面にWrite configuration to /root/.toprcといったメッセージが表示されます。

Ctrlを押下したまま、cを押下して、topコマンドを終了します。そして、再度、topコマンドを実行します。以下のように、右端から2番目にTIMEが表示されていることがわかります。

9 プロセス終了や優先度を変更する方法

9.1 プロセスを終了する方法(k)

kはプロセスを終了するオプションです。ここでは、stress-ngプロセス(PID=1553)を終了するため、PIDとして1553を入力します。そして、Enterを押下します。

次に、プロセスに送信するシグナルを選択します。ここでは、デフォルトの15(SIGTERM)を選択します。そのあと、Enterを押下すると、stress-ngプロセスが終了します。

プロセスの状態を確認します。stress-ngプロセス(PID=1553)が終了していることがわかります。

9.2 プロセスのNICE値を変更する方法(r)

rはプロセスのNICE値を変更するオプションです。ここでは、stress-ngプロセス(PID=1551)のNICE値を変更するため、PIDとして1551を入力します。そして、Enterを押下します。

NICE値を19に変更するため、19と入力したあと、Enterを押下します。なお、NICE値の変更は、nice,reniceコマンドの使い方 - hana_shinのLinux技術ブログも参照してみてください。

プロセスのNICE値を確認します。stress-ngの優先度が0から19に変更されたことがわかります。

10 表示するプロセス数を制限する方法

nは表示するプロセス数を指定するオプションです。ここでは、表示するプロセス数を5にしてみます。nを押下して、下記画面を表示します。そして、表示するプロセス数を入力します。

プロセスが5つだけ表示されていることがわかります。元の状態に戻すには、Shiftを押下したまま、=を押下します。

11 ソートする方法

デフォルトでは、プロセスはCPU使用率の順(降順)でソートされています。

ここでは、プロセスをメモリ使用量の順(降順)にソートしてみます。fを押下したあと、矢印キーを使ってカーソルを%MEMに移動します。


次に、sを押下します。sを押下すると%CPUが%MEMに変更されます(赤い枠の中)。

メモリ使用量の順(降順)にソートしされたことがわかります。

12 文字列を検索する方法

表示されているプロセス情報から文字列を検索することができます。Shiftを押下したまま、Lを押下して、検索する文字列を入力します。ここでは、apacheと入力してみました。

Enterを入力すると、検索した文字列がハイライトされます。元の状態に戻すには、Shiftを押下したまま、=を押下します。


Z 参考図書

私が業務や記事執筆で参考にした書籍を以下のページに記載します。
Linux技術のスキルアップをしよう! - hana_shinのLinux技術ブログ