- はじめに
- ヘルプ ( h or ? )
- 文字列検索 ( L )
- ユーザ毎に監視 ( u )
- プロセスを終了させる ( k )
- コマンドを詳細に表示 ( c )
- ソート関連 ( <, >, P, M, R )
- CPU、メモリ、スワップの使用率を視覚的に表示 ( t, m )
- CPU コア毎の情報を表示 ( 1 )
- プロセス毎の CPU 使用率を CPU コア数の総使用率で表示 ( I )
- 設定を保存 ( W )
はじめに
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)
ユーザ毎に監視 ( u )
top コマンド実行中に「u -> ユーザ名を入力 -> Enter」でユーザ毎のリソース使用状況を監視できます。
実行例2 (入力キー: u,"guest",Enter)
プロセスを終了させる ( k )
top コマンド実行中に「k -> 終了させたい PID 入力 -> Enter」で、入力した PID の プロセスを終了 (SIGTERM シグナルを発行)できます (送信シグナルは変更可)。
実行例3 (入力キー: L,"top",k,"16973",Enter,Enter)
コマンドを詳細に表示 ( 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,>,<,<,<,<,<,<,<,<)
ちなみに Z で、詳細なカラーリングの設定ができます。
CPU、メモリ、スワップの使用率を視覚的に表示 ( t, m )
, top コマンド実行中に「t -> t」で、CPUの使用率を視覚的(横棒グラフ)に表示できます。同様に「m -> m」で、メモリ、スワップの使用率も視覚的に表示できます。
さらに z で、横棒グラフの内訳を分かりやすく表示できます。
実行例6 (入力キー: t,t,m,m,z)
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 です。