Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Linuxのtopコマンドでサーバーの稼働状況を確認する

環境

  • OS:CentOS Linux release 7.7.1908
[root@CENTOS7 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@CENTOS7 ~]#

1. topコマンド

topコマンドで、CPUやメモリの使用率などの詳細情報をプロセスごとに一覧で確認することができるます。
デフォルトでtopコマンドは現在実行中のプロセスをCPU使用率が高い順に表示します。表示はリアルタイムで更新され、qを入力すると終了します。

topコマンド書式
top [オプション]

topコマンドの主なオプション

オプション 内容
-d 間隔 更新する間隔を「ss.tt秒」で指定する
-n 回数 表示を繰り返す回数を指定する
-b バッチモード。キー操作を受け付けず、「-n」で指定された回数または「CTRL+C」などで強制終了(kill)されるまで実行を続ける
topの結果をファイルに保存する際などに役立つ
-s セキュアモードで動作(起動中に「d」などを受け付けなくなる)
-U ユーザー
-u ユーザー
監視するユーザーを名前またはIDで指定
-p プロセスID 監視するプロセスIDを指定。「-p 番号 -p 番号」または「-p 番号, 番号」のように複数指定できる(空白は省略可能)
-c COMMAND欄(右端)を、プログラム名の表示とコマンドラインの表示のどちらにするか切り替える(起動後は「c」で切り替え)
-i 何も実行していないアイドルプロセスを表示するか、しないかを切り替える(起動後は「i」で切り替え)
-S 累積時間モード(起動後は「S」で切り替え)
-o 項目 出力の並べ替えに使用する項目(デフォルトはCPU使用率)を指定。指定できる項目名は「top -O」で確認
例えば使用メモリ(物理メモリの占有率)が大きい順に表示したい場合、「top -o %MEM」とする
-w 桁数 出力の幅

2. インタラクティブなtopコマンド

topコマンド実行中に以下のインタラクティブなコマンドを使用できます。

コマンド 詳細
Enter、Space 表示を最新の情報に直ちに更新します。
h インタラクティブコマンドのヘルプ画面を表示します。
h、? ウィンドウおよびフィールドグループのヘルプ画面を表示します。
k プロセスを kill します。プロセス ID およびプロセスに送信するシグナルがプロンプトされます。
n 表示されるプロセス番号を変更します。番号を入力するようプロンプトされます。
u 一覧をユーザー別に並べ替えます。
M 一覧をメモリ使用率で並べ替えます。
P 一覧を CPU 使用率で並べ替えます。
q ユーティリティーを終了して、シェルプロンプトに戻ります。

3. topコマンドの出力結果の見方

topコマンドで以下のように表示されます。

topコマンドの出力結果
top - 16:29:43 up 21:14,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  97 total,   1 running,  96 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1014820 total,   401940 free,   187588 used,   425292 buff/cache
KiB Swap:  1679356 total,  1679356 free,        0 used.   676612 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    1 root      20   0  128040   6712   4176 S  0.0  0.7   0:03.53 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd
    4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
    5 root      20   0       0      0      0 S  0.0  0.0   0:00.19 kworker/u2:0
    6 root      20   0       0      0      0 S  0.0  0.0   0:00.91 ksoftirqd/0
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.90 rcu_sched
   10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-dra+
   11 root      rt   0       0      0      0 S  0.0  0.0   0:00.95 watchdog/0
   13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
   14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
   15 root      20   0       0      0      0 S  0.0  0.0   0:00.03 khungtaskd
   16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback
   17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd
   18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
   19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset

1行目(top~)の表示内容

1行目には「現在時刻」「稼働時間」「ログインユーザー数」「ロードアベレージ」が表示されます。

1行目の表示内容
top - 16:29:43 up 21:14,  1 user,  load average: 0.00, 0.01, 0.05
項目 内容
16:29:43 現在時刻(16時29分43秒)
up 21:14 稼働時間(21時間14分)
1 user ログインユーザー数(1ユーザーがログイン中)
load average: 0.00, 0.01, 0.05 過去1、5、15分間のロードアベレージ

2行目(Tasks:~)の表示内容

2行目にはタスクの状態が表示されます。

2行目の表示内容
Tasks:  97 total,   1 running,  96 sleeping,   0 stopped,   0 zombie
項目 内容
total タスクの合計数
running 稼働中のタスク数
sleeping 待機中のタスク数
stopped 停止タスク数
zombie ゾンビタスク数

3行目(%Cpu(s):~)の表示内容

3行目はCPUの状態が表示されます。

3行目の表示内容
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
項目 内容
us ユーザープロセスの使用時間の割合
sy システムプロセスの使用時間の割合
ni 実行優先度を変更したユーザプロセスの使用時間の割合
id アイドル状態の時間の割合
wa I/Oの終了待をしている時間の割合
hi ハードウェア割込み要求での使用時間の割合
si ソフトウェア割込み要求での使用時間の割合
st OS仮想化利用時に、ほかの仮想CPUの計算で待たされた時間の割合

4行目(KiB Mem :)の表示内容

4行目はメモリの状態が表示されます。

4行目の表示内容
KiB Mem :  1014820 total,   401940 free,   187588 used,   425292 buff/cache
項目 内容
total メモリの合計容量
free 未使用のメモリ容量
used 使用中のメモリ容量
buff/cache バッファキャッシュ/ページキャッシュとして割り当てられたメモリ容量

5行目(KiB Swap:)の表示内容

5行目はスワップ領域の状態が表示されます。

5行目の表示内容
KiB Swap:  1679356 total,  1679356 free,        0 used.   676612 avail Mem
項目 内容
total スワップ領域の合計容量
free 未使用のスワップ領域の容量
used 使用中のスワップ領域の容量
avail Mem 新しいアプリがスワップせずに使えるメモリ容量

7行目以降の表示内容

7行目以降は、実行中の各プロセスの状態が表示されます。

7行目以降の表示内容
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    1 root      20   0  128040   6712   4176 S  0.0  0.7   0:03.53 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd
    4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
    5 root      20   0       0      0      0 S  0.0  0.0   0:00.19 kworker/u2:0
    6 root      20   0       0      0      0 S  0.0  0.0   0:00.91 ksoftirqd/0
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.90 rcu_sched
   10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-dra+
   11 root      rt   0       0      0      0 S  0.0  0.0   0:00.95 watchdog/0
   13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
   14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
   15 root      20   0       0      0      0 S  0.0  0.0   0:00.03 khungtaskd
   16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback
   17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd
   18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
   19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset
項目 内容
PID プロセスID
USER プロセスの実行ユーザー
PR プロセスの静的優先度(数字が低い程優先度は高い)
NI プロセスの相対優先度(0を基準とし、-20(優先度高)~19(優先度低)で表している)
VIRT プロセスの仮想メモリサイズ(スワップアウトしたメモリ使用量を加えたメモリ容量)
RES プロセスが使用しているメモリ容量(物理メモリ容量)
SHR プロセスが使用している共有メモリ容量
S プロセスの状態
D:割り込み不可(sleep)
R:実行中
S:スリープ状態
T:停止中(ジョブ制御信号により停止)
t:停止中(トレース中にデバッガーにより停止)
Z:ゾンビ状態
%CPU CPU使用率
%MEM 物理メモリ使用率
TIME+ プロセスのCPU使用時間
COMMAND 現在実行中のコマンド名

以上

yasushi-jp
横浜市在住のITエンジニアです。主に関東圏で活動しています。新しいテクノロジーに興味を持っています。専門はITアーキテクト(Java(主にJavaEE)、データベース、ネットワーク等)がメインですが、新しいテクノロジーに大変興味があり、最近は機械学習や深層学習をPythonで実装したりもしています。 よろしくお願い致します。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away