CPUのリソース使用状況を確認する

Last update: 2024/12/22


環境

以下の実行例はAlma Linux9で確認している。

システム全体の状況を確認する

システム全体のCPU使用率を確認するにはtop、vmstat、iostat、mpstat、sar -uなどを使う。

$ top
top - 01:38:54 up 1 day, 58 min,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 153 total,   1 running, 151 sleeping,   1 stopped,   0 zombie
%Cpu(s):  0.0 us,  1.6 sy,  0.0 ni, 96.8 id,  0.0 wa,  1.6 hi,  0.0 si,  0.0 st
MiB Mem :  15416.1 total,  11504.0 free,   2725.3 used,   1528.7 buff/cache
MiB Swap:   7896.0 total,   7896.0 free,      0.0 used.  12690.8 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      1 root      20   0  176540  19688  11116 S   0.0   0.1   0:04.08 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 slub_flushwq
…以下略…
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 11778628   9216 1556192    0    0     2     8   20   52  0  0 100  0  0
$ mpstat
Linux 5.14.0-362.24.2.el9_3.x86_64 (localhost.localdomain)      12/22/24        _x86_64_(4 CPU)

01:42:15     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
01:42:15     all    0.06    0.00    0.02    0.00    0.02    0.02    0.00    0.00    0.00   99.87
$ sar -u
Linux 5.14.0-362.24.2.el9_3.x86_64 (localhost.localdomain)      12/22/24        _x86_64_(4 CPU)

00:00:06        CPU     %user     %nice   %system   %iowait    %steal     %idle
00:10:06        all      0.00      0.00      0.05      0.00      0.00     99.94
00:20:06        all      0.00      0.00      0.05      0.00      0.00     99.95
00:30:06        all      0.00      0.00      0.05      0.00      0.00     99.95
00:40:06        all      0.00      0.00      0.05      0.00      0.00     99.95
00:50:06        all      0.00      0.00      0.05      0.00      0.00     99.95
01:00:06        all      0.01      0.01      0.06      0.00      0.00     99.92
01:10:06        all      1.68      0.00      0.29      0.00      0.00     98.03
01:20:06        all      0.00      0.00      0.06      0.00      0.00     99.94
01:30:06        all      0.00      0.00      0.05      0.00      0.00     99.95
01:40:06        all      0.00      0.00      0.05      0.00      0.00     99.95
Average:        all      0.17      0.00      0.07      0.00      0.00     99.75

プロセスごとの状況を確認する

プロセスごとのCPU使用率を確認するにはtop、ps auxなどを使う。

$ ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.1 176540 19688 ?        Ss   Dec21   0:04 /usr/lib/systemd/syst
root           2  0.0  0.0      0     0 ?        S    Dec21   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   Dec21   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   Dec21   0:00 [rcu_par_gp]
root           5  0.0  0.0      0     0 ?        I<   Dec21   0:00 [slub_flushwq]

負荷平均を確認する

CPUの負荷平均を確認するにはtop、uptime、wなどを使う。

$ uptime
 01:49:37 up 1 day,  1:08,  2 users,  load average: 0.00, 0.00, 0.00
$ w
 01:49:38 up 1 day,  1:08,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
wakky    tty1      Sat00   20:31m  0.09s  0.09s -bash
wakky    pts/0     00:58    2.00s 41.61s  0.00s w

プロセスのPIDを確認する

プロセスのPIDを確認するにはtop、ps aux、pstree -p、lsofなどを使う。

$ pstree -p
systemd(1)─┬─NetworkManager(785)─┬─{NetworkManager}(788)
           │                     └─{NetworkManager}(789)
           ├─auditd(13945)───{auditd}(13946)
           ├─crond(40109)
           ├─dbus-broker-lau(766)───dbus-broker(767)
           ├─firewalld(40200)───{firewalld}(41756)
           ├─irqbalance(40111)───{irqbalance}(40174)
           ├─login(845)───bash(1323)
           ├─rsyslogd(40125)─┬─{rsyslogd}(40156)
           │                 └─{rsyslogd}(40157)
           ├─sshd(24052)───sshd(52972)───sshd(52975)───bash(52976)─┬─bash(53035)
           │                                                       └─pstree(53253)
           ├─systemd(1314)───(sd-pam)(1316)
           ├─systemd-journal(40121)
           ├─systemd-logind(773)
           └─systemd-udevd(40126)
$ lsof
COMMAND     PID   TID TASKCMD    USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
systemd       1                  root  cwd       DIR              253,0      235        128 /
systemd       1                  root  rtd       DIR              253,0      235        128 /
systemd       1                  root  txt       REG              253,0    98232   67119301 /usr/lib/systemd/systemd
systemd       1                  root  mem       REG              253,0   584059      29669 /etc/selinux/targeted/contexts/files/file_contexts.bin
…以下略…

Copyright (c) 2024 kd