■ はじめに
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