LoginSignup
301
280

More than 3 years have passed since last update.

top コマンドでよく使う or 便利そうな機能

Last updated at Posted at 2019-01-26

■ はじめに

top コマンドと言えば、リソースの状況確認に使えるコマンドですが、実は結構多機能です。今回は、個人的によく使う機能や便利そうだと思う機能を調べたので、まとめました。

対象バージョンは次のとおりです。

$ top -v
procps-ng version 3.3.10

■ ヘルプ ( h or ? )

top コマンド実行中に h or ? で、ヘルプを表示できます。top コマンドを終了させずに対話型のコマンドを確認できるので、非常に便利です。

■ 文字列検索 ( L )

top コマンド実行中に「L -> 文字列入力 -> Enter」で、ヒットした文字列を含むプロセスを上部に表示できます。ヒット部分はハイライトされます。

実行例1 (入力キー: L,"cpu",Enter, L,"bash",Enter, L,"20",Enter)
実行例1 (入力キー: L,"cpu",Enter,L,"bash",Enter,L,"20",Enter)
5_search.gif

■ ユーザ毎に監視 ( u )

top コマンド実行中に「u -> ユーザ名を入力 -> Enter」でユーザ毎のリソース使用状況を監視できます。

実行例2 (入力キー: u,"guest",Enter)
top_u.gif

■ プロセスを終了させる ( k )

top コマンド実行中に「k -> 終了させたい PID 入力 -> Enter」で、入力した PID の プロセスを終了 (SIGTERM シグナルを発行)できます (送信シグナルは変更可)。

実行例3 (入力キー: L,"top",k,"16973",Enter,Enter)
top_k2.gif

■ コマンドを詳細に表示 ( c )

top コマンド実行中に c で、実行コマンド (COMMAND) をフルパスか、[]付きで表示できます。[]付きは、カーネルモードで動作していることを意味します。

実行例4

 top - 22:08:04 up 4 days,  6:11,  1 user,  load average: 0.61, 0.72, 0.45
 ... (略) ...

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                      
  1516 root      20   0 4367388 654408 107028 S   3.3  8.1  22:27.82 /usr/bin/gnome-shell         
 19753 root      20   0  790540  39864  29668 S   0.7  0.5   0:02.43 /usr/libexec/gnome-terminal+ 
  1154 gdm       20   0  845936  25776  18680 S   0.3  0.3   3:09.20 /usr/libexec/gsd-color       
 20036 root      20   0  162460   4580   3868 R   0.3  0.1   0:00.08 top                          
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.17 [kthreadd]                   
     4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 [kworker/0:0H]               
     6 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 [mm_percpu_wq] 

■ ソート関連 ( <, >, P, M, R )

top コマンド実行中に
<, > で、ソート対象のカラムを選択できます。
P で、CPU の使用量順にソートできます。
M で、メモリの使用量順にソートできます。
R で、ソートの昇順/降順を切り替えられます。

さらに...
z...カラー/モノクロ切り替え
x...選択カラムをハイライト
b...選択カラムのハイライトをより分かり易くする
を使うことで、どのカラムを選択しているのか分かりやすくできます。

実行例5 (入力キー: z,x,b,>,<,<,<,<,<,<,<,<)
5_sort.gif

ちなみに Z で、詳細なカラーリングの設定ができます。

■ CPU、メモリ、スワップの使用率を視覚的に表示 ( t, m )

,
top コマンド実行中に「t -> t」で、CPUの使用率を視覚的(横棒グラフ)に表示できます。同様に「m -> m」で、メモリ、スワップの使用率も視覚的に表示できます。

さらに z で、横棒グラフの内訳を分かりやすく表示できます。

実行例6 (入力キー: t,t,m,m,z)
5_mem_cpu_toggle.gif

■ CPU コア毎の情報を表示 ( 1 )

top コマンド実行中に 1 で、CPU コア毎の情報を表示できます。デフォルトでは、複数の CPU コア情報が1つに纏められており %Cpu(s) と表示されています。

実行例7

 top - 22:06:48 up 4 days,  6:10,  1 user,  load average: 0.56, 0.74, 0.43
 Tasks: 270 total,   1 running, 269 sleeping,   0 stopped,   0 zombie
 %Cpu0  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st ★
 %Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st ★
 %Cpu2  :  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st ★
 %Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st ★
 ... (略) ...

■ プロセス毎の CPU 使用率を CPU コア数の総使用率で表示 ( I )

top コマンド実行中に I で、プロセス毎の CPU 使用率を CPU コア数の総使用率で表示できます。デフォルトでは、プロセス毎に使用している CPU コアの使用率が表示されています。

実行例8 では、CPU コア数が4つのシステムで、CPU に負荷を掛けています($ stress --cpu 1)。%Cpu3、%CPU がそれぞれ 100 になります。%Cpu3 が3番目の CPU コア情報で、%CPU が stress コマンドの CPU 使用率です。

実行例8

# 1つの CPU コアに負荷を掛ける
$ stress --cpu 1 &

$ top (1 キー 押下の状態)
top - 22:02:01 up 4 days,  6:05,  1 user,  load average: 0.96, 0.44, 0.22
Tasks: 272 total,   2 running, 270 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.7 us,  0.0 sy,  0.0 ni, 98.6 id,  0.0 wa,  0.7 hi,  0.0 si,  0.0 st
%Cpu2  :  0.7 us,  0.0 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
        ^^^^^^^^
KiB Mem :  8093920 total,   690324 free,  2598136 used,  4805460 buff/cache
KiB Swap:  8225788 total,  8043004 free,   182784 used.  4710784 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU   %MEM     TIME+ COMMAND
19817 root      20   0    7904     96      0 R 100.0    0.0   0:39.91 stress
                                               ^^^^^^

この状態で I を押下すると、%CPU が 24.9(約25) と表示されます。これは、stress コマンドの CPU 使用率(100)が4つある CPU コア数の総使用量で表示されている(100/4 = 25)ためです。

実行例9

top - 22:05:08 up 4 days,  6:08,  1 user,  load average: 1.06, 0.77, 0.40
Tasks: 272 total,   2 running, 270 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8093920 total,   687224 free,  2600356 used,  4806340 buff/cache
KiB Swap:  8225788 total,  8043004 free,   182784 used.  4708324 avail Mem 

  PID USER      PR  NI    VIRT    RES   SHR  S  %CPU   %MEM     TIME+ COMMAND
19817 root      20   0    7904     96     0  R  24.9      0.0   3:46.19 stress
                                                                                                ^^^^

なお、システムの CPU コア数は、
 $ nproc
 $ grep -c processor /proc/cpuinfo
 $ getconf _NPROCESSORS_ONLN
などからも確認できます。

■ 設定を保存 ( W )

top コマンド実行中に W で、前述の設定などを保存(~/.toprcに保存)できます。例えば「z -> W」とすると、top コマンド実行時は常に z を押下した(カラーリングされた)状態になります。

設定をリセットする場合は、設定ファイルを削除 ($ rm ~/.toprc) すれば、OK です。

301
280
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
301
280