Skip to content
Calcrivo

Inode Usage Calculator

Calculate inode consumption percentage on an ext4 or xfs filesystem and flag warning and critical thresholds.

Inputs

Value from the IUsed column of df -i

Value from the Inodes column of df -i

Inode Usage

92.50%

Status

Warning — approaching inode limit

Free Inodes

150,000

Free Percentage

7.50%

Step by step

  1. Values used

    Used Inodes = 1,850,000; Total Inodes = 2,000,000

  2. Inode usage percentage

    used% = used_inodes / total_inodes × 100

  3. Inode Usage

    = 92.50

  4. Status

    = Warning — approaching inode limit

  5. Free Inodes

    = 150,000

  6. Free Percentage

    = 7.50

How it works

Every file, directory, symlink and named pipe on a Linux filesystem consumes exactly one inode, regardless of the file's data size. Because the total inode count is fixed at filesystem creation time (for ext4) or grows dynamically but still has practical ceilings (for xfs), a filesystem can report plenty of free disk blocks via df while simultaneously being completely full from df -i's perspective — most commonly when a workload creates huge numbers of very small files, such as mail spools, session caches or scratch directories. This calculator applies the same 80% warning and 95% critical thresholds commonly used for block usage, since inode exhaustion causes an identical 'no space left on device' failure even though the disk itself is not full.

Formula

Inode usage percentage

used% = used_inodes / total_inodes × 100

I_{used}
used inode count
I_{total}
total inode count

Guides that use this calculator

Frequently Asked Questions

Why does df show free space while df -i shows 100% inode usage?

Block usage and inode usage are tracked independently. A directory tree full of tiny files (a few bytes each) can exhaust every inode long before it fills the underlying disk blocks, because each file consumes one inode no matter how small its data is.

Can I add more inodes to an existing ext4 filesystem?

No — ext4 fixes its total inode count at mkfs time based on the bytes-per-inode ratio specified during formatting. The only fix for an inode-exhausted ext4 filesystem is to free up files or reformat with a smaller bytes-per-inode ratio (or migrate to xfs, which allocates inodes dynamically).

What commonly causes inode exhaustion?

Common culprits include runaway log rotation creating thousands of small files, mail queues, session or cache directories that never clean up old entries, and build systems or package caches that accumulate many small intermediate files without pruning.

You might also need