はじめに
この記事は Linux 環境でのプロセス、メモリ、ディスクの状況確認のために使う自分のためのコマンドのチートシートです。
適宜更新していきます。
プロセス
プロセスの一覧取得
OS上で動いているすべてのプロセスをCPUやメモリの使用率も表示して確認するのは以下のコマンド。
$ ps aux
ここから特定のキーワードでプロセスを検索したいときは grep を用いるとよい。
$ ps aux | grep node
仮想メモリ使用量でソートするは以下の感じ。
$ ps aux | sort -rnk 5
子プロセスを考慮してプロセスをツリー表示する場合は以下を使う。
$ pstree -p
プロセスの正常終了
$ sleep 600 &
[1] 9087
$ ps
PID TTY TIME CMD
6991 pts/0 00:00:00 bash
9087 pts/0 00:00:00 sleep
9088 pts/0 00:00:00 ps
$ kill 9087
$ ps
PID TTY TIME CMD
6991 pts/0 00:00:00 bash
9142 pts/0 00:00:00 ps
指定のプロセスが開いているファイルを調べる
$ sudo lsof -p ${pid}
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dockerd 1104 root cwd DIR 259,5 4096 5376151 /var/snap/docker/384
dockerd 1104 root rtd DIR 7,1 321 12827 /
dockerd 1104 root txt REG 7,6 79888528 14 /snap/docker/384/bin/dockerd
dockerd 1104 root mem-W REG 259,5 32768 656392 /var/snap/docker/common/var-lib-docker/buildkit/cache.db
dockerd 1104 root mem-W REG 259,5 16384 656370 /var/snap/docker/common/var-lib-docker/buildkit/metadata.db
dockerd 1104 root mem-W REG 259,5 16384 656367 /var/snap/docker/common/var-lib-docker/buildkit/snapshots.db
指定のファイルを開いているプロセスIDを調べる
$ lsof ${filepath}
指定のプロセスが開いているファイルを調べる
$ lsof -p ${pid}
各プロセスの通信に使用しているポートなどを確認する
$ lsof -i
メモリ
メモリ使用量をMB単位で表示する。
$ free -m
total used free shared buff/cache available
Mem: 15935 2259 11752 158 1923 13168
Swap: 2047 0 2047
Mem
は物理メモリ、Swap
はディスク上のスワップ領域となります。
shared
は主に tmpfs ファイルシステムで使われている領域のサイズを表す。
Ubuntu だと /dev/shm などにマウントされている。
ファイルの読み込み時にメモリにキャッシュするのだが、buff/cache
は現在メモリでキャッシュしている領域のサイズを指す。
Mem
の used
はプロセスなどが使っている物理メモリ使用量。buff/cache は含まない。
Mem
の free
も buff/cache を含まない空いている物理メモリ領域を指す。
Mem
の available
は開放可能である buff/cache
も含めた利用可能な物理メモリ領域を指す。
ディスク
指定のファイルのメタデータを確認する
$ stat examples.desktop
File: examples.desktop
Size: 8980 Blocks: 24 IO Block: 4096 通常ファイル
Device: 10305h/66309d Inode: 3934242 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ teru) Gid: ( 1000/ teru)
Access: 2019-10-01 22:07:22.533667350 +0900
Modify: 2019-09-28 19:50:24.095516675 +0900
Change: 2019-09-28 19:50:24.095516675 +0900
Birth: -
ディレクトリ内の各ファイルの inode 番号を調べる
$ ls -i
各ファイルシステムの容量確認
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 8135284 0 8135284 0% /dev
tmpfs 1631836 2132 1629704 1% /run
/dev/nvme0n1p5 86053984 14722548 66917024 19% /
tmpfs 8159168 109296 8049872 2% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 8159168 0 8159168 0% /sys/fs/cgroup
各ファイルシステムのinodeの利用率
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 2033821 646 2033175 1% /dev
tmpfs 2039792 1200 2038592 1% /run
/dev/nvme0n1p5 5505024 376935 5128089 7% /
tmpfs 2039792 226 2039566 1% /dev/shm
tmpfs 2039792 5 2039787 1% /run/lock
tmpfs 2039792 18 2039774 1% /sys/fs/cgroup
その他
指定の秒ごとにコマンドを実行して結果を表示し続ける
10秒ごとに更新してプロセス一覧を表示し続ける。
$ watch -n 10 ps aux