インフラ作業支援ラボInfra Support Lab ← ガイド一覧← 戻る

Linuxのディスク使用量を確認する方法|df・du・inode・findmnt

Linuxでディスク使用量を確認するときに、findmnt・df・df -i・duを使って対象ファイルシステム、容量、inode、使用箇所を順番に絞る手順を整理します。

このページの目的

「どのディスクが満杯か」と「どこが使っているか」を分け、対象ファイルシステムを特定してから容量・inode・ディレクトリ使用量を調べます。

最初にやること

まずfindmnt -T 対象パスでマウント先を確認し、同じパスに対してdf -hとdf -iを記録します。

関連するLinux障害調査ガイド

このページの対象:Linuxで「どのファイルシステムが満杯か」「どこが容量やinodeを使っているか」を調べるページです。すでにNo space left on deviceが出ている場合は、専用トラブルページも併用してください。

最短の確認順

# 1. 対象パスがどのファイルシステムか findmnt -T /var/log # 2. 容量とinode df -h /var/log df -i /var/log # 3. 同じファイルシステム内で使用箇所を絞る sudo du -x -h --max-depth=1 /var | sort -h

サーバー全体を闇雲に走査せず、まず障害や増加が起きているパスのファイルシステムを特定します。findmntがない環境では、後述のmount・/proc/mounts・df -Pへ読み替えます。

対象ファイルシステムを特定する

# 現行環境での確認例 findmnt -T /var/log lsblk -f

findmnt -Tは指定したパスを含むマウントを確認するのに便利です。別マウント、bind mount、tmpfs、コンテナ層などを見落とすと、別のディスクを調べ続けることがあります。

findmntがない既存・最小構成環境:mountやcat /proc/mountsでマウント情報を確認できます。またdf -P /var/logでも、指定パスを含むファイルシステムをPOSIX形式で確認できます。出力形式と情報量が異なるため、findmntの完全な代替ではなく読み替え手段として使います。
mount cat /proc/mounts df -P /var/log

dfで容量を確認する

df -h /var/log

GNU dfにパスを渡すと、そのパスを含むファイルシステムの使用量と空き容量を確認できます。Use%だけでなくAvailも確認します。

inodeを確認する

df -i /var/log

容量に余裕があってもinodeが不足すると新規ファイルを作れないファイルシステムがあります。IFreeやIUse%を確認し、小ファイル大量生成の可能性を分けます。

inodeの扱いはファイルシステム依存:df -iの表示だけで削除判断をせず、どのアプリケーションがファイルを生成しているかまで確認します。

duで使用箇所を絞る

sudo du -x -h --max-depth=1 /var | sort -h sudo du -x -h --max-depth=1 /var/log | sort -h

-xを付けると別ファイルシステムへまたがらずに集計できます。大きいディレクトリを一段ずつ絞ると、不要な全体走査を減らせます。

本番負荷に注意:duは多数のファイルを走査します。大規模なファイルシステムではI/O負荷や実行時間を考慮し、対象範囲を小さくしてから実行してください。

dfとduの値が合わないとき

dfはファイルシステム全体の使用状況、duは辿れるファイル・ディレクトリの使用量を集計するため、値が完全一致するとは限りません。大きな差がある場合は削除済みオープンファイルや、見えていないマウント・権限などを確認します。

sudo lsof +L1

削除済みオープンファイルの詳しい切り分けはNo space left on deviceガイドで確認します。

削除・拡張前の安全確認

確認結果から次へ進む

結果次の確認
容量がほぼ0duで使用箇所を絞り、保持・ローテーション・容量設計を確認
inodeが枯渇大量ファイルの生成元と保持設計を確認
df大・du小lsof +L1やマウント構成を確認
ENOSPCが発生済み専用トラブルガイドで原因別に切り分け
ログが急増logrotateガイドで保持・ローテーションを確認

公式・一次資料

ほかの症状も確認する

症状が異なる場合は、トラブル解決ガイド一覧から確認順を選べます。

トラブル解決一覧へ