Linuxのディスク使用率/ファイル容量の確認方法とは??
はじめに
今回は、Linuxのディスク使用率とファイル容量の確認方法についてアウトプットしていきたいと思います。
今回のトピック
- ディスク使用率確認
- ファイル容量確認
- ディスク使用率逼迫原因のファイルを特定する方法
ディスク使用率確認
Linuxのディスク使用率を確認するためのコマンドについて解説していきたいと思います。
dfコマンド
Linuxのディスク使用率を確認するコマンドになります。
dfコマンドの略称はdisk freeになります。
df
[root@storage ~]# df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/centos-root 49250820 1169452 48081368 3% /
devtmpfs 1011628 0 1011628 0% /dev
tmpfs 1023848 0 1023848 0% /dev/shm
tmpfs 1023848 8732 1015116 1% /run
tmpfs 1023848 0 1023848 0% /sys/fs/cgroup
/dev/sda1 1038336 132388 905948 13% /boot
tmpfs 204772 0 204772 0% /run/user/0
[root@storage ~]#
コマンド実行例にあるそれぞれの項目の意味はこちらになります。
項目 | 意味 | 表示例 |
---|---|---|
ファイルシステム | 各ファイルシステム(ディスク名) | /dev/mapper/centos-root |
1K-ブロック | 使用できるディスク容量 デフォルトでは、1K(1024バイト)のブロックサイズの表示 |
49250820 |
使用 | 使用しているディスク容量 | 1169452 |
使用可 | 使用可能であるディスク容量 | 48081368 |
使用% | ディスク使用率 | 3% |
マウント位置 | ファイルシステムがマウントされているディレクトリ | / |
現場で業務をする中で一番注目する必要がある項目は以下になります。
- 使用%
- マウント位置
※ファイルシステム等はストレージから切り出したボリュームをマウントする際に確認します。
dfコマンドのオプション
僕が実際の現場でよく使用するdfコマンドのオプションをまとめました。
オプション | 意味 | 備考 |
---|---|---|
-a | 全てのファイルシステムを表示する。 | ダミーのファイルシステム等も表示する。 |
-P | POSIX出力形式(サイズではなくブロックで表示) | 「1024-ブロック」→ 「1K-ブロック」 |
-h | 単位を付けて表示する。 | M(メガ)やK(キロ)等 |
使用例①
以下の形式で表示する。
・POSIX出力形式
・単位を付けて表示
[root@terraform-sv ~]# df -Ph
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 50G 2.8G 48G 6% /
devtmpfs 876M 0 876M 0% /dev
tmpfs 887M 0 887M 0% /dev/shm
tmpfs 887M 9.0M 879M 2% /run
tmpfs 887M 0 887M 0% /sys/fs/cgroup
/dev/sda1 1014M 145M 870M 15% /boot
/dev/mapper/centos-home 74G 33M 74G 1% /home
tmpfs 178M 0 178M 0% /run/user/0
[root@terraform-sv ~]#
使用例②
全てのファイルシステムを表示。
[root@terraform-sv ~]# df -a
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
rootfs - - - - /
sysfs 0 0 0 - /sys
proc 0 0 0 - /proc
devtmpfs 896372 0 896372 0% /dev
securityfs 0 0 0 - /sys/kernel/security
tmpfs 908256 0 908256 0% /dev/shm
devpts 0 0 0 - /dev/pts
tmpfs 908256 9148 899108 2% /run
tmpfs 908256 0 908256 0% /sys/fs/cgroup
cgroup 0 0 0 - /sys/fs/cgroup/systemd
pstore 0 0 0 - /sys/fs/pstore
cgroup 0 0 0 - /sys/fs/cgroup/blkio
cgroup 0 0 0 - /sys/fs/cgroup/perf_event
cgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacct
cgroup 0 0 0 - /sys/fs/cgroup/net_cls,net_prio
cgroup 0 0 0 - /sys/fs/cgroup/memory
cgroup 0 0 0 - /sys/fs/cgroup/devices
cgroup 0 0 0 - /sys/fs/cgroup/pids
cgroup 0 0 0 - /sys/fs/cgroup/freezer
cgroup 0 0 0 - /sys/fs/cgroup/cpuset
cgroup 0 0 0 - /sys/fs/cgroup/hugetlb
configfs 0 0 0 - /sys/kernel/config
/dev/mapper/centos-root 52403200 2935252 49467948 6% /
debugfs 0 0 0 - /sys/kernel/debug
mqueue 0 0 0 - /dev/mqueue
systemd-1 - - - - /proc/sys/fs/binfmt_misc
hugetlbfs 0 0 0 - /dev/hugepages
/dev/sda1 1038336 147704 890632 15% /boot
/dev/mapper/centos-home 77548548 33056 77515492 1% /home
tmpfs 181652 0 181652 0% /run/user/0
binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
[root@terraform-sv ~]#
ファイル使用率確認
Linuxのファイル容量を確認するためのコマンドについて解説していきたいと思います。
duコマンド
Linuxのファイル容量を確認するコマンドになります。
duコマンドの略称はdisk usageになります。
du ディレクトリ名
[root@terraform-sv home]# du /home
0 /home/terraform/test
16 /home/terraform
16 /home
[root@terraform-sv home]#
コマンド実行例にあるそれぞれの項目の意味はこちらになります。
項目 | 意味 | 表示例 |
---|---|---|
容量 | それぞれのファイル容量 デフォルトの場合は、kByte単位 |
16 |
ディレクトリ | 対象のディレクトリ内に格納されているディレクトリ名 | /home/terraform |
duコマンドのオプション
僕が実際の現場でよく使用するduコマンドのオプションをまとめました。
オプション | 意味 |
---|---|
-a | ディレクトリだけではなく、ファイルのディスク使用量も表示します。 |
-h | ディスク容量が読みやすいように単位をつけて表示します。(例:10K 1M 2G) |
-s | 指定したディレクトリのディスク使用量のみを表示する。 サブディレクトリのディスク使用量は表示しない。 |
使用例①
ディレクトリ/ファイルのディスク使用量を表示。
[terraform@terraform-sv test]$ du -a /home
4 /home/terraform/.bash_logout
4 /home/terraform/.bash_profile
4 /home/terraform/.bashrc
4 /home/terraform/.bash_history
0 /home/terraform/test/test
0 /home/terraform/test/test1
0 /home/terraform/test/test2
4 /home/terraform/test/testdir/test.txt
4 /home/terraform/test/testdir
4 /home/terraform/test
20 /home/terraform
20 /home
[terraform@terraform-sv test]$
使用例②
読みやすい単位で表示させる。
[terraform@terraform-sv test]$ du -ah /home
4.0K /home/terraform/.bash_logout
4.0K /home/terraform/.bash_profile
4.0K /home/terraform/.bashrc
4.0K /home/terraform/.bash_history
0 /home/terraform/test/test
0 /home/terraform/test/test1
0 /home/terraform/test/test2
4.0K /home/terraform/test/testdir/test.txt
4.0K /home/terraform/test/testdir
4.0K /home/terraform/test
20K /home/terraform
20K /home
[terraform@terraform-sv test]$
使用例③
指定したディレクトリの使用量のみ表示
[terraform@terraform-sv test]$ du -s /home
20 /home
[terraform@terraform-sv test]$
ディスク使用率逼迫原因のファイルを特定する方法
疑似的に大容量のファイルを作成し、場所を特定して削除する迄をやってみます。
①ダミーファイル作成
今回使用するダミーファイルを作成する。
dd if=/dev/zero of=dummy bs=1G count=70
※ファイル容量が70GBのdummy
という名前のダミーファイルを作成する。
[terraform@terraform-sv test]$ dd if=/dev/zero of=dummy bs=1G count=70
70+0 レコード入力
70+0 レコード出力
75161927680 バイト (75 GB) コピーされました、 43.2146 秒、 1.7 GB/秒
[terraform@terraform-sv test]$ ls -la
合計 73400320
drwxrwxr-x 2 terraform terraform 19 5月 16 15:33 .
drwx------. 3 terraform terraform 95 5月 16 15:03 ..
-rw-rw-r-- 1 terraform terraform 75161927680 5月 16 15:33 dummy
[terraform@terraform-sv test]$
②ディスク使用率確認
dfコマンドにてディスク使用率を確認する。
df -Ph
/home
のディスク使用率が95%になっていることを確認。
※運用監視の現場であれば、アラートが発砲している。
[terraform@terraform-sv test]$ df -Ph
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 50G 2.9G 48G 6% /
devtmpfs 876M 0 876M 0% /dev
tmpfs 887M 0 887M 0% /dev/shm
tmpfs 887M 9.0M 879M 2% /run
tmpfs 887M 0 887M 0% /sys/fs/cgroup
/dev/sda1 1014M 145M 870M 15% /boot
/dev/mapper/centos-home 74G 71G 4.0G 95% /home ← ここ
tmpfs 178M 0 178M 0% /run/user/0
[terraform@terraform-sv test]$
③ファイル特定
duコマンドを用いて、原因のファイルを特定する。
- /home直下のファイルを確認する。
[terraform@terraform-sv test]$ du -ah /home | sort -hr
71G /home/terraform
71G /home
70G /home/terraform/test/dummy
70G /home/terraform/test
4.0K /home/terraform/.bashrc
4.0K /home/terraform/.bash_profile
4.0K /home/terraform/.bash_logout
4.0K /home/terraform/.bash_history
[terraform@terraform-sv test]$
→ 一番階層が深い/home/terraform/test/dummy
が怪しいことを確認。
※sort -hr
は降順にソートするコマンドになります。
- /home/terraform/test/dummy直下のファイルを確認する。
[terraform@terraform-sv ~]$ du -ah /home/terraform/test/dummy
70G /home/terraform/test/dummy
[terraform@terraform-sv ~]$ ls -l /home/terraform/test/dummy
-rw-rw-r-- 1 terraform terraform 75161927680 5月 16 15:33 /home/terraform/test/dummy
[terraform@terraform-sv ~]$
→dummy
ファイルが原因であることを確認
④dummyファイルの削除
容量逼迫の原因である、dummy
ファイルを削除する。
[terraform@terraform-sv ~]$ cd /home/terraform/test/
[terraform@terraform-sv test]$ ls
dummy
[terraform@terraform-sv test]$ rm -i dummy
rm: 通常ファイル `dummy' を削除しますか? y
[terraform@terraform-sv test]$ ls
[terraform@terraform-sv test]$
⑤ディスク使用率確認
ディスク使用率を再度確認。
[terraform@terraform-sv test]$ df -Ph
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos-root 50G 2.9G 48G 6% /
devtmpfs 876M 0 876M 0% /dev
tmpfs 887M 0 887M 0% /dev/shm
tmpfs 887M 9.0M 879M 2% /run
tmpfs 887M 0 887M 0% /sys/fs/cgroup
/dev/sda1 1014M 145M 870M 15% /boot
/dev/mapper/centos-home 74G 33M 74G 1% /home ← 容量が減っている。
tmpfs 178M 0 178M 0% /run/user/0
[terraform@terraform-sv test]$
→/home
の使用率が1%になっていることを確認。
参考
【Linuxコマンド】dfでディスクの空き容量を確認する
duコマンドについてまとめました 【Linuxコマンド集】
Linuxでのダミーファイルの作成
Discussion