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
Values used
Used Inodes = 1,850,000; Total Inodes = 2,000,000
Inode usage percentage
used% = used_inodes / total_inodes × 100
Inode Usage
= 92.50
Status
= Warning — approaching inode limit
Free Inodes
= 150,000
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.