Understanding Inodes and File Limits
Last Updated: 2025-01-01
3 min read
Every file on a Linux server uses an inode — a data structure that stores information about the file such as its size, ownership, permissions, and location on disk. Hosting providers set inode limits to ensure fair resource usage across shared servers. Understanding inodes helps you manage your hosting account efficiently and avoid hitting these limits.
What Counts as an Inode?
Each of the following uses one inode:
- Every file (HTML, PHP, image, CSS, JS, etc.)
- Every directory (folder)
- Every email message stored on the server
- Every database entry does NOT count — database content is stored within database files
In simple terms: 1 file = 1 inode.
Checking Your Inode Usage
In cPanel
- Log in to cPanel.
- Look at the Statistics sidebar on the right side of the dashboard.
- Find Inodes Usage — it displays your current usage and your limit.
Via Command Line
If you have terminal or SSH access:
# Total inode usage for your account
find /home/username -printf '.' | wc -c
# Inode count per directory (top-level breakdown)
find /home/username -maxdepth 1 -type d -exec sh -c 'echo "$(find "{}" -printf "." | wc -c) {}"' \; | sort -rn
Using Disk Usage Tool
- In cPanel, go to Files → Disk Usage.
- This shows the size and file count per directory, helping you identify which folders contain the most files.
Common Causes of High Inode Usage
| Cause | Description |
|---|---|
| Email accumulation | Thousands of stored emails, especially spam in junk folders |
| Cache files | CMS caching plugins generating thousands of static files |
| Session files | Old PHP session files accumulating in temp directories |
| Backup files | Old backups stored within the hosting account |
| Unused CMS installations | Abandoned WordPress or Joomla installs with thousands of plugin/theme files |
| File manager uploads | Large numbers of images or media files |
| Log files | Error and access logs growing without rotation |
How to Reduce Your Inode Count
1. Clean Up Emails
- Delete old emails from all mailboxes, especially Spam, Trash, and Sent folders.
- Use email clients to download and archive old messages locally.
2. Remove Cache Files
- Clear your CMS cache (WordPress: use your caching plugin’s purge option).
- Delete old cache files in
/home/username/.cache/or plugin cache directories.
3. Remove Unused Files
- Delete old backups, log files, and temporary files.
- Remove unused themes, plugins, and CMS installations.
4. Compress Files
- Archive rarely accessed files into a single
.zipor.tar.gzfile (one archive = one inode instead of thousands).
5. Clean Temporary Files
# Find and review files older than 30 days in tmp directories
find /home/username/tmp -type f -mtime +30
6. Optimize Media
- Instead of uploading multiple image sizes manually, let your CMS generate them.
- Use external services (CDN, cloud storage) for large media libraries.
What Happens When You Hit the Inode Limit?
When you reach your inode limit:
- You cannot create new files, including uploading images, creating cache files, or receiving emails.
- Your website may display errors because PHP cannot create session or temporary files.
- Automated processes (backups, cron jobs) may fail silently.
Important Notes
- Inode limits are separate from disk space limits — you can have disk space remaining but run out of inodes.
- Typical shared hosting inode limits range from 100,000 to 500,000 inodes.
- Regularly monitoring your inode usage prevents unexpected issues with your website and email.
- If you consistently need more inodes, consider upgrading to a higher hosting plan or a VPS.
Keeping your inode count in check ensures your hosting account runs smoothly and avoids disruptions caused by file limit restrictions.
Tags:
cpanel
hosting
inodes
file-limits
disk-usage