2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【覚書き】topコマンドでcpu使用率を見る

Last updated at Posted at 2023-09-28

初めに

社内の勉強会でwebサイトのパフォーマンス改善のハンズオンを行いました。
その際にtopコマンドを知ったので備忘のためにアウトプットします。

参考にした記事

こちらの記事を参考にさせていただきました!
ありがとうございます!

topコマンドとは

topコマンドとは、サーバ全体の負荷を確認するコマンドのこと。
cpu使用率やメモリの使用率を確認することができる。

topコマンド実行してみた

実行はtopと打つだけでOK。

$ top

topコマンド実行結果

実行すると以下のような情報がリアルタイムで表示される

top - 22:32:31 up 13 min,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  29 total,   1 running,  28 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  15868.3 total,  14949.8 free,    504.9 used,    413.6 buff/cache
MiB Swap:   4096.0 total,   4096.0 free,      0.0 used.  15106.2 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    390 root      20   0  466596  77288  20280 S   0.0   0.5   0:02.41 python3.10
    142 root      20   0 1614436  50832  18336 S   0.0   0.3   0:00.68 snapd
    573 root      20   0   43756  37700   9920 S   0.0   0.2   0:01.62 python3
    207 root      20   0  107216  21092  12864 S   0.0   0.1   0:00.03 unattended-upgr
    136 root      20   0   30124  18912  10096 S   0.0   0.1   0:00.05 networkd-dispat
     87 systemd+  20   0   25260  12412   8472 S   0.0   0.1   0:00.06 systemd-resolve
      1 root      20   0  166896  12224   8036 S   0.0   0.1   0:00.65 systemd
     35 root      19  -1   31416  11272  10272 S   0.0   0.1   0:00.06 systemd-journal
    143 root      20   0   15324   7396   6444 S   0.0   0.0   0:00.06 systemd-logind
     60 root      20   0   22088   5924   4408 S   0.0   0.0   0:00.07 systemd-udevd
    522 root      20   0    6080   5056   3372 S   0.0   0.0   0:00.02 bash
    139 syslog    20   0  222400   5044   4220 S   0.0   0.0   0:00.00 rsyslogd
    504 root      20   0    6120   4988   3412 S   0.0   0.0   0:00.00 bash
    480 root      20   0    7476   4808   3896 S   0.0   0.0   0:00.00 login
    120 message+  20   0    8596   4428   3888 S   0.0   0.0   0:00.08 dbus-daemon
    618 root      20   0    7792   3688   3088 R   0.0   0.0   0:00.29 top
    362 root      20   0    4780   3344   3108 S   0.0   0.0   0:00.02 subiquity-serve

各行の説明

1行目:時間、ユーザ、load average

左から順に
・現在時刻
・サーバの稼働時間
・ログインユーザ数
・単位時間あたりの待ちタスク数(1分、5分、15分)

top - 22:32:31 up 13 min,  1 user,  load average: 0.00, 0.00, 0.00

2行目:タスク情報

左から順に
・合計タスク数
・稼働中のタスク数
・待機中のタスク数
・停止タスク数
・ゾンビタスク数

Tasks:  29 total,   1 running,  28 sleeping,   0 stopped,   0 zombie

3行目:cpu使用率

左から順に
・userプロセス(ユーザが起動したプロセス)
・systemプロセス(システムで起動してるプロセス)
・niceプロセス(優先プロセス)
・idleプロセス(何もしてないプロセス)
・I/O waitプロセス(cpuは使用してないけどioで待ちになっているプロセス)
・hardware interruptプロセス(cpu外部からの割り込みプロセス)
・software interruptプロセス(cpu内部からの割り込みプロセス)

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

1を押すと各CPUのプロセスが表示される(16スレッドのCPUなので16個表示されているっぽい)
ほぼ全部0.0なので見ごたえないですね :upside_down:

%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.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.0 us,  0.0 sy,  0.0 ni,100.0 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
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu8  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu9  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu10 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu11 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu12 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu13 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu14 :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu15 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

4,5行目:Memory/Swap

物理メモリとスワップメモリの使用メモリ量。一番左に書いてある「MiB」が単位
左から順に
・全メモリ量
・使用してないメモリ量
・使用中のメモリ量
・buff/cache:バッファ、キャッシュで使用されているメモリ量
・avail Mem :新しいアプリがスワップせずに使えるメモリ量

MiB Mem :  15868.3 total,  14949.8 free,    504.9 used,    413.6 buff/cache
MiB Swap:   4096.0 total,   4096.0 free,      0.0 used.  15106.2 avail Mem

6行目以降:プロセス一覧

現在のプロセスの一覧が表示される。
各列の説明は以下の通り

・PID :プロセスID
・USER :そのユーザを実行してるユーザ
・PR :優先度。0を基準とした相対的な値
・VIRT :確保されている仮想メモリ量
・RES :使用している物理メモリ量
・SHR :他のプロセスと共有される可能性のあるメモリ量
・S :プロセスのステータス(Sはスリープ)
・%CPU :CPU使用率
・%MEM :メモリの使用率
・TIME+ :プロセスの実行時間
・COMMAND:プロセスの実行コマンド名

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    390 root      20   0  466596  77288  20280 S   0.0   0.5   0:02.41 python3.10
    142 root      20   0 1614436  50832  18336 S   0.0   0.3   0:00.68 snapd
    573 root      20   0   43756  37700   9920 S   0.0   0.2   0:01.62 python3
    207 root      20   0  107216  21092  12864 S   0.0   0.1   0:00.03 unattended-upgr
    136 root      20   0   30124  18912  10096 S   0.0   0.1   0:00.05 networkd-dispat

SHift + pもしくはSHift + mでcpu、メモリの使用率でソート可能

最後に

ハンズオンではtopコマンドの結果を見ながらボトルネックになっている箇所を特定してチューニングを行いました。闇雲にチューニングしてもいい結果は得られないですね。
topコマンドこれからも使っていこうと思います。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?