【Linux】Linux ~ パフォーマンスに関わるコマンド ~

 ■ はじめに

Linuxのパフォーマンスや運用に関わるコマンドをまとめる

目次

【1】CPU負荷を調べるコマンド
 1)topコマンド
 2)uptimeコマンド
 3)wコマンド
 4)psコマンド
【2】ディスク容量/メモリ使用量を調べるコマンド
 1)dfコマンド
 2)duコマンド
 3)freeコマンド
【3】ディスクIOを調べるコマンド
 1)vmstatコマンド

【1】CPU負荷を調べるコマンド

1)topコマンド

* CPUやメモリの使用状況を調べるコマンド
* Windows のタスクマネージャー的ようなもの

コマンド例

$ top

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    218 root      20   0 1726836  54852  29956 S   0.3   1.4   0:17.50 containerd
    578 root      20   0 2253920 107720  47804 S   0.3   2.7   0:25.67 python3.10
    679 root      20   0   43092  36488  10140 S   0.3   0.9   0:37.34 python3
      1 root      20   0  165820  11420   8352 S   0.0   0.3   0:02.29 systemd
      2 root      20   0    2456   1328   1220 S   0.0   0.0   0:00.01 init-system

# ユーザ名(e.g. apache)限定させて表示
$ top -u apache

# 5秒間隔で表示
$ top -d 5
items Explanations 注目すべき項目
PID プロセスID
USER プロセスを所有するユーザ名
PR プロセス優先度
NI ナイス値でのプロセス優先度
VIRT メモリ使用サイズ(kb)
RES 実際のメモリ使用サイズ(kb)
SHR 共有メモリサイズ(kb)
S プロセスの状態(R:稼働/S:スリープ/D:スリープ(使用不可)/T:停止中/Z:ゾンビ)
%CPU CPU使用率
%MEM メモリ使用率
TIME+ プロセス稼働時間
COMMAND プロセスのコマンド

操作
|Commands|Explanations| |---|---| |Shift+m|メモリ使用順にソート| |Shift+p|CPU使用順にソート| |q|終了(quit)|

2)uptimeコマンド

* システムがどれだけの時間起動しつづけているかを
 表すシステムの稼働時間を表示

http://cmd.misty.ne.jp/refference/uptime.html
コマンド例

$ uptime
11:34:38 up 43 min,  2 users,  load average: 0.00, 0.01, 0.05
# 【現在時刻(11:34:38)】 【システム稼働時間(up 43 min)】 【接続ユーザ数(2 users)】
#  【右から1分以内/5分以内/15分以内の平均負荷(load average: 0.00, 0.01, 0.05)】

補足:load average とは?

* CPUに割り当てられたジョブの待ち行列に入っているジョブ数
* サーバへの負荷の指標のひとつ

 3)wコマンド

* 現在ログインしているユーザー名とその利用状況を表示

http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/230990/
コマンド例

$ w
 11:35:58 up 45 min,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
dk       tty7     :0               10:51   45:06   5.01s  0.04s gdm-session-wo
root     pts/1    :0.0             10:51    6.00s  3.45s  0.00s w

 4)psコマンド

* 実行中のプロセスおよびCPUの使用時間を表示
* ps = Process Status の略
* 詳細は、以下の関連記事を参照

psコマンド
https://dk521123.hatenablog.com/entry/2018/02/02/181500

コマンド例

$ ps
  PID TTY          TIME CMD
 4459 pts/1    00:00:00 bash
 4465 pts/1    00:00:00 top
 4490 pts/1    00:00:03 top
 5037 pts/1    00:00:00 ps

# システム全体のプロセス状況を表示
$  ps aux

# -a: 自分以外のユーザーのプロセスも表示
# -u: ユーザ名と開始時刻を表示
# -x: 制御端末のないプロセスの情報も表示

【2】ディスク容量/メモリ使用量を調べるコマンド

 1)dfコマンド

* ファイルシステムのディスク容量を表示
* df = Disk Freeの略

http://webkaru.net/linux/df-command/
コマンド例

# 読みやすいサイズ表記で表示
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
none            1.9G  4.0K  1.9G   1% /mnt/wsl
none            238G  224G   14G  95% /usr/lib/wsl/drivers
/dev/sdc        251G   12G  227G   5% /
none            1.9G  108K  1.9G   1% /mnt/wslg
...

2)duコマンド

* ディスク使用量を確認
* du = Disk Usage の略

コマンド例

# ディレクトリのディスク使用量
du /var/log

# ファイルのディスク使用量
# => 表示行数が多い時のために「| more」を使う
du -a /var/log | more

# ディスク容量のみ表示
$ sudo du -s /var/log/
843732  /var/log/

# -h :読み易い単位で表示
$ sudo du -sh /var/log/
824M    /var/log/

 3)freeコマンド

* 現在のメモリーの使用状況を表示

http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230780/
コマンド例

# KB単位で表示
$ free
               total        used        free      shared  buff/cache   available
Mem:         3917804      584024     2376428        3464      957352     3106600
Swap:        1048576           0     1048576

# MB単位で表示
$ free -m
               total        used        free      shared  buff/cache   available
Mem:            3825         568        2322           3         934        3035
Swap:           1024           0        1024

# 1秒間隔で表示
$ free -ms 1

 【3】ディスクIOを調べるコマンド

1)vmstatコマンド

* システム負荷を確認
* vmstat = Virtual Memory STATistics
* 詳細は、以下の関連記事を参照

vmstatコマンド
https://dk521123.hatenablog.com/entry/2017/11/30/202400

コマンド例

$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 2365148  49828 919848    0    0     5     2    3   35  0  0 100  0  0

$ vmstat -SM
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0   2308     48    898    0    0     5     2    3   35  0  0 100  0  0

 参考文献

http://d.hatena.ne.jp/takigawa401/20120423/1335187750
https://gist.github.com/kitak/6349463
http://tech-blog.aloha-inc.jp/tech/16
http://infrakeise.blog92.fc2.com/blog-entry-43.html

 関連記事

パフォーマンスに関わるコマンド ~ Windows編 ~
プロセスを強制終了するには ~ kill 9 [PID] ~
psコマンド
https://dk521123.hatenablog.com/entry/2018/02/02/181500
vmstatコマンド
https://dk521123.hatenablog.com/entry/2017/11/30/202400