NoteStack

This page is a beginner-friendly note about reading df -i output. It focuses on inode exhaustion risks and practical checks in real operations.

「空きあるのに詰まる?」df -i の見方と inode 枯渇の注視点

df -i を「何が危険サインか」「次に何を疑うか」まで判断できる形で整理します。

まず前提:df -i は「容量」ではなく「ファイルの枠(inode)」を見る

最初にここだけ揃えます。ここが混ざると、判断がズレます。

よく混ざる2つ
  • df -h容量(GB / MB)の残りを見る
  • df -iinode(ファイルを作れる枠)の残りを見る
一番こわいパターン
  • 容量は余っている(df -h は大丈夫そう)
  • でも inode が尽きて、新しいファイルが作れない

これが「空きはあるのに詰まる」状態です。

inode(アイノード)って何?(やさしく)

ファイルやディレクトリ1つごとに必要な「管理番号(席)」みたいなものです。小さいファイルを大量に作ると、容量より先に席が埋まることがあります。

列の意味:ここだけ読めれば “だいたい” 困らない

列名を「運用で使う言葉」に置き換えます。

Filesystem(対象)

どの領域(ファイルシステム)を見ているかです。例:/dev/vda2tmpfs など。

Inodes(総 inode 数)

この領域で使える inode の総数です。言い換えると、最大で作れるファイル/ディレクトリの上限です。

IUsed(使用中 inode 数)

すでに使われている inode 数です。ざっくり「ファイル+ディレクトリの数」と考えると読みやすいです。

IFree(残り inode 数)

まだ使える inode 数です。つまり、あと何個ファイルを作れるかです。

IUse%(inode 使用率)

埋まり具合の割合です。運用判断ではまずここを見ます。

Mounted on(どこに繋がっているか)

この領域が、OSのどの場所(パス)として見えているかです。例:/(ルート)や /run など。

最初に見る場所:Mounted on/ の行が “本命” になりやすい

行が多いときは、見る順番を固定すると迷いが減ります。

基本の判断
  • まず Mounted on/ の行を見る(ここが詰まると影響が大きい)
  • 次に /var/home が別パーティションなら、それぞれの行も見る
なぜ / が重要?

/ の中には、ログ(/var/log)、Web(/var/www)、設定(/etc)、ユーザー(/home)など、ファイルが増えやすい場所がまとまって入ることが多いからです。

読み方の例:/dev/vda2 ... / を “文章” にするとこうなる

数字の羅列を、1行ずつ文章にして読み替えます。

例(よくある行)
/dev/vda2  1638400  175092  1463308  11%  /
意味(こう読めばOK)
  • / に繋がった領域で使える inode は 1,638,400
  • そのうち 175,092 個を使用中
  • 残りは 1,463,308 個ある
  • 使用率は 11% なので、現状は余裕がある
この行だけで分かる結論

いま “inode 枯渇” で困る状態ではありません(ただし、増え方が急だと別なので後で触れます)。

tmpfs / devtmpfs が出てくるけど、基本は “本丸” ではない

ここを誤解すると「危険じゃないのに不安」になりやすいです。

tmpfs(例:/run / /dev/shm
  • メモリ上の一時ファイルシステムです
  • 再起動で消えるものが多いです
  • inode の行があっても、まずは / の行で判断するのが安全です
devtmpfs(例:/dev

デバイスファイルのための領域で、運用上の “ファイル増殖” の犯人になりにくいです。

注視する点:IUse% の目安を決めておく

「何%から危ないの?」が曖昧だと、放置しがちなので目安を固定します。

ざっくり目安(迷ったらこれ)
  • 80%:原因調査を始める(増え方を把握する)
  • 90%:かなり危険(削除・整理・運用改善を急ぐ)
  • 95%〜:事故が起きやすい(ログや更新が止まりやすい)
  • 100%新しいファイルが作れない(実害が出る)
inode が尽きると何が起きる?(典型)
  • ログが書けない(Nginx / systemd / アプリが不安定になる)
  • 一時ファイルが作れない(更新や圧縮が失敗する)
  • セッションやキャッシュが作れない(Webアプリが壊れたように見える)

しかも df -h では “空きがある” と見えることがあるので、気づきにくいです。

よくある原因:小さいファイルが “大量に” 増えている

inode を食いつぶすのは、サイズではなく「数」です。

典型パターン
  • ログが細かく分割されすぎて、ファイル数が爆増
  • キャッシュ(画像変換、テンポラリ、セッション)が小ファイルで増殖
  • メールの保存やスプールが溜まり続ける
  • 監視やジョブが毎回 “新規ファイル” を作って掃除していない
自分用メモ(勘違いしやすい点)

「1KBのファイル」でも「1つ作れば inode を1つ消費」します。容量ではなく、件数の問題です。

原因の探し方:まず “多い場所” を見つける

いきなり消す前に、増えている場所を特定します。

ディレクトリ別に inode 使用数をざっくり見る(便利)
sudo du --inodes -d 1 / | sort -n

上位に出てくる場所(/var / /var/log / アプリ用ディレクトリなど)を疑います。

「ファイル数」を数えて当たりをつける
sudo find /var -xdev -type f | wc -l

ここで数が異常に多い場合、ログやキャッシュの設計(増え方・掃除)が原因になりがちです。

ログが怪しいときの定番
sudo du --inodes -d 2 /var | sort -n
sudo du --inodes -d 2 /var/log | sort -n
注意:削除の前に “正体” を確認する
  • まず 何が増えているか(ログ?キャッシュ?一時ファイル?)を見ます
  • 動作中のプロセスが掴んでいるログは、削除しても実容量が戻らないことがあります
  • 根本は「ローテーション」「保持上限」「掃除(削除)」の運用設計です

ミニチェック:この結果を見たら、次に何を判断する?

「見る→判断する」を短いチェックに落とします。

チェック1:/IUse% は何%?

80%を超えていたら、増えている場所の特定(du --inodes / find)に進みます。

チェック2:df -h と矛盾していない?

容量は余っているのに挙動がおかしいなら、inode 枯渇を疑います(「空きがあるのに書けない」)。

チェック3:増え方は急じゃない?

いまは余裕でも、増加ペースが速いと一気に詰むので、数日分だけでも出力を残して差分を見ると安心です。

よくある質問(FAQ)

Q. inode が尽きると、具体的にどんなエラーになりますか?

A. 代表的には「ファイルが作れない」系です。例:ログが書けない、更新が失敗する、一時ファイル作成で落ちる、などです。容量は空いているのに起きるので、まず df -iIUse% を見て判断します。

Q. tmpfsIUse% も気にした方がいいですか?

A. 基本は /(や /var 等の実ディスク側)を優先して見ます。tmpfs はメモリ上の一時領域なので、ここが増えていても「ディスク枯渇」とは別の軸です。

Q. 小ファイルが増えている場所を、手早く特定する方法は?

A. まず du --inodes で上位ディレクトリを洗い出し、当たりを付けたら find ... | wc -l でファイル数を確認すると迷いにくいです。

Q. “容量” と “inode” は、どっちを見ればいいですか?

A. どちらも見ます。普段は df -h(容量)で十分でも、「容量は余裕なのに挙動が変」「ログが書けない」などのときは inode が原因になりがちです。セットで確認すると取りこぼしが減ります。