[サーバ管理]topコマンドの読み方

Linux

はじめに

Linux系サーバを運用しているときに負荷状況を調べる場面があります。
そんなときはtopコマンドを使って確認ができるのですが、
一見どう見れば良いのか、よくわからないことがありましたのでまとめます。

topコマンド

他にも、vmstatとか色々ありますが、私は基本的にtopコマンドを使っています。
このコマンドだけで各リソース状況とプロセスを確認することができます。

結論から書くと、3行目や4行目のCPUやメモリの使用率を見ることが多いです。
psコマンドのようにプロセスはこちらでも見ることもできます。

●実行結果

[user01@localhost ~]$ top
top - 00:59:48 up 1:28, 0 users, load average: 0.06, 0.03, 0.01
Tasks: 2 total, 1 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 2027880 total, 304888 free, 347632 used, 1375360 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used. 1490332 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 11828 2876 2492 S 0.0 0.1 0:00.07 bash
18 root 20 0 56212 3832 3276 R 0.0 0.2 0:00.11 top

「q」を押すと終了できる。
しかし、情報量が多くパッと見分かりづらいので簡単に解説します。

●1行目

top - 00:59:48 up 1:28, 0 users, load average: 0.06, 0.03, 0.01

左から現時刻、稼働時間、ログインしているユーザー数、ロードアベレージを表します。
ちなみに「uptime」コマンドでも同様の結果が表示されます。

●2行目

Tasks: 2 total, 1 running, 1 sleeping, 0 stopped, 0 zombie

タスクの情報を表示します。
左から合計、実行中、休止中、停止中、ゾンビです。
ゾンビプロセスが残っている場合は、プロセスが意図せず起動している可能性があるので、
killコマンドなどを使って停止する必要があります。

●3行目

%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

CPUの情報を表示します。
idはidle(空き)率のことで、高い値の場合は余裕があることを表します。
逆に言えば、この値が低いと負荷が高いことを表します。

usとsyはユーザーとシステムそれぞれのCPU使用率です。

●4行目

KiB Mem : 2027880 total, 304888 free, 347632 used, 1375360 buff/cache

メモリの情報を表示します。
freeの値が低い場合はメモリ使用率が高くなっている状態と読み取れます。

※freeコマンドでも同様の結果を確認できます。

●5行目

KiB Swap: 1048572 total, 1048572 free, 0 used. 1490332 avail Mem

スワップの情報を表示します。正直あんまり見ないです。
しかし、usedの値が0でない場合はスワップアウトが発生しているので、
メモリ負荷が高くなっていると言えます。

●6行目以降

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 11828 2876 2492 S 0.0 0.1 0:00.07 bash
18 root 20 0 56212 3832 3276 R 0.0 0.2 0:00.11 top

psコマンドと同じようにプロセスの状況を確認することができます。
ただ、特定のプロセスが動いているかどうかを確認したい場合はgrepと併用してpsコマンドを使った方が見やすいです。

コメント