Linux便利コマンド : top

うめだ
2024-09-17
2024-09-17
目次

はじめに

みなさま、プロセス状況をリアルタイム表示するtopコマンドを活用されてますでしょうか。

サーバーの負荷が上昇しているときに、どんなプロセスでメモリおよびCPUを消費しているのか確認する際に利用します。

いろいろなオプションが用意されており、便利に使うことができますので、私がいつも指定しているオプション含めて、使い方を紹介します。

環境

OS : AlmaLinux 8
topバージョン : procps-ng 3.3.15

使い方

早速、top コマンドを実行してみます。


$ top

top - 03:45:54 up 518 days, 18:19,  1 user,  load average: 0.00, 0.01, 0.00

Tasks: 187 total,   1 running, 186 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  5.7 sy,  0.0 ni, 94.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1812.6 total,    153.5 free,    723.6 used,    935.4 buff/cache
MiB Swap:   8192.0 total,   7698.6 free,    493.4 used.    849.3 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
3105349 future    20   0   54480   4200   3520 R   6.2   0.2   0:00.02 top
      1 root      20   0  238852   7480   5096 S   0.0   0.4 320:50.89 systemd

稼働しているプロセスの状態がリアルタイムで表示されます。

表示される各項目は下記のようになっています。

項目 説明
PID プロセスID
USER 実行ユーザー名
PR 実行優先順位
NI nice値
VIRT 利用仮想メモリ(KB)
RES 利用実メモリ(KB)
SHR 共有メモリ(KB)
S プロセス状態
%CPU CPU占有率
%MEM メモリ占有率
TIME+ CPU利用時間
COMMAND コマンド名

 

topコマンド実行中に対話オプションを入力することで、表示内容を変更することができます。

  • メモリ使用率が高い順に並び変える : M
top - 04:01:04 up 518 days, 18:34,  1 user,  load average: 0.04, 0.01, 0.00
Tasks: 188 total,   1 running, 187 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.3 us,  1.2 sy,  0.0 ni, 93.1 id,  0.2 wa,  0.2 hi,  0.2 si,  0.0 st
MiB Mem :   1812.6 total,    152.6 free,    724.4 used,    935.6 buff/cache
MiB Swap:   8192.0 total,   7698.6 free,    493.4 used.    848.5 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
2992698 apache    20   0 6548380  20740   7700 S   0.0   1.1   0:44.33 httpd
2992696 apache    20   0 6548380  20716   7676 S   0.0   1.1   0:49.88 httpd
    685 root      20   0  133628  19244  17952 S   0.3   1.0  24:16.20 systemd-journal
  • CPU使用率が高い順に並び変える : P
top - 04:01:30 up 518 days, 18:35,  1 user,  load average: 0.03, 0.01, 0.00
Tasks: 188 total,   1 running, 187 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.2 hi,  0.0 si,  0.0 st
MiB Mem :   1812.6 total,    152.7 free,    724.3 used,    935.6 buff/cache
MiB Swap:   8192.0 total,   7698.6 free,    493.4 used.    848.6 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
3105923 future    20   0   54448   4500   3600 R   0.7   0.2   0:00.33 top
2997226 apache    20   0 6548380  18672   7700 S   0.3   1.0   0:47.49 httpd
      1 root      20   0  238852   7480   5096 S   0.0   0.4 320:51.01 systemd
  • 更新間隔を変更する : s

デフォルトは3秒間隔ですが、こちらを変更することができます。

s を入力後、変更したい秒数を入力し、Enterを押すことで変更できます。

top - 04:02:49 up 518 days, 18:36,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 188 total,   1 running, 187 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.5 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1812.6 total,    153.3 free,    723.7 used,    935.6 buff/cache
MiB Swap:   8192.0 total,   7698.6 free,    493.4 used.    849.3 avail Mem
Change delay from 3.0 to 2
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
2996582 apache    20   0 6548380  18696   7700 S   0.5   1.0   0:43.98 httpd
  • 各CPU利用量を表示する : 1

デフォルトでは、CPU総利用量が表示されますが、これを各CPU利用量の表示に変更できます。

top - 04:05:55 up 518 days, 18:39,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 186 total,   1 running, 185 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.7 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1812.6 total,    153.3 free,    723.7 used,    935.6 buff/cache
MiB Swap:   8192.0 total,   7698.6 free,    493.4 used.    849.2 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      1 root      20   0  238852   7480   5096 S   0.0   0.4 320:51.04 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:53.56 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_
  • コマンド名にオプションなどを含め表示する : c

コマンド名を指定されたオプション含めて表示させることもできます。

top - 04:07:30 up 518 days, 18:41,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 186 total,   1 running, 185 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.2 hi,  0.0 si,  0.0 st
MiB Mem :   1812.6 total,    153.2 free,    723.8 used,    935.6 buff/cache
MiB Swap:   8192.0 total,   7698.6 free,    493.4 used.    849.1 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
3106189 future    20   0   54448   4312   3412 R   1.0   0.2   0:00.26 top
      1 root      20   0  238852   7480   5096 S   0.0   0.4 320:51.04 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
      2 root      20   0       0      0      0 S   0.0   0.0   0:53.56 [kthreadd]
  • カラー表示を切り替える : z

カラー表示を切り替えることもできます。

どんな色味にへんこうできるかは実際に試してみてください。

  • topコマンドを終了する : q

終了する際は、q を入力することでコマンドが終了し、プロンプトが返ってきます。

 

まとめ

いかがでしたか?

サーバーの運用業務で必要となるプロセスの稼働状況確認において、とても便利に使えるtopコマンドの紹介でした。

是非とも活用ください。