Linuxのディスク使用量を確認する方法|df・du・inode・findmnt
Linuxでディスク使用量を確認するときに、findmnt・df・df -i・duを使って対象ファイルシステム、容量、inode、使用箇所を順番に絞る手順を整理します。
このページの目的
「どのディスクが満杯か」と「どこが使っているか」を分け、対象ファイルシステムを特定してから容量・inode・ディレクトリ使用量を調べます。
最初にやること
まずfindmnt -T 対象パスでマウント先を確認し、同じパスに対してdf -hとdf -iを記録します。
関連するLinux障害調査ガイド
journalctlでエラーを確認する
現在・前回起動、特定サービス、期間、priorityを分けてjournalを確認します。
journalを確認 → トラブルNo space left on deviceを切り分ける
ENOSPC発生後に容量・inode・削除済みオープンファイルなどを順番に確認します。
原因を切り分ける →No space left on deviceが出ている場合は、専用トラブルページも併用してください。最短の確認順
サーバー全体を闇雲に走査せず、まず障害や増加が起きているパスのファイルシステムを特定します。findmntがない環境では、後述のmount・/proc/mounts・df -Pへ読み替えます。
対象ファイルシステムを特定する
findmnt -Tは指定したパスを含むマウントを確認するのに便利です。別マウント、bind mount、tmpfs、コンテナ層などを見落とすと、別のディスクを調べ続けることがあります。
mountやcat /proc/mountsでマウント情報を確認できます。またdf -P /var/logでも、指定パスを含むファイルシステムをPOSIX形式で確認できます。出力形式と情報量が異なるため、findmntの完全な代替ではなく読み替え手段として使います。dfで容量を確認する
GNU dfにパスを渡すと、そのパスを含むファイルシステムの使用量と空き容量を確認できます。Use%だけでなくAvailも確認します。
inodeを確認する
容量に余裕があってもinodeが不足すると新規ファイルを作れないファイルシステムがあります。IFreeやIUse%を確認し、小ファイル大量生成の可能性を分けます。
df -iの表示だけで削除判断をせず、どのアプリケーションがファイルを生成しているかまで確認します。duで使用箇所を絞る
-xを付けると別ファイルシステムへまたがらずに集計できます。大きいディレクトリを一段ずつ絞ると、不要な全体走査を減らせます。
duは多数のファイルを走査します。大規模なファイルシステムではI/O負荷や実行時間を考慮し、対象範囲を小さくしてから実行してください。dfとduの値が合わないとき
dfはファイルシステム全体の使用状況、duは辿れるファイル・ディレクトリの使用量を集計するため、値が完全一致するとは限りません。大きな差がある場合は削除済みオープンファイルや、見えていないマウント・権限などを確認します。
削除済みオープンファイルの詳しい切り分けはNo space left on deviceガイドで確認します。
削除・拡張前の安全確認
- 大きいファイルを見つけても、用途・保持要件・バックアップを確認する前に削除しない。
- ログならアプリケーションの再オープン方式とlogrotate設定を確認する。
- 容量拡張で一時的に解消しても、増加原因と監視閾値を確認する。
- コンテナ、NFS、tmpfs、ストレージ製品固有のquotaなどでは確認方法が異なる場合がある。
確認結果から次へ進む
| 結果 | 次の確認 |
|---|---|
| 容量がほぼ0 | duで使用箇所を絞り、保持・ローテーション・容量設計を確認 |
| inodeが枯渇 | 大量ファイルの生成元と保持設計を確認 |
df大・du小 | lsof +L1やマウント構成を確認 |
| ENOSPCが発生済み | 専用トラブルガイドで原因別に切り分け |
| ログが急増 | logrotateガイドで保持・ローテーションを確認 |