How to fix Disk Quota Exceeded error in Linux servers
Disk Quota Exceeded is a common error in Linux web hosting servers. Website owners see this error when they try to upload a file, send a mail or update a database.
Every month, our engineers resolve hundreds of “Disk Quota Exceeded” errors in our role as website support for web hosting companies. We’ve seen these 2 causes for the error:
- Users exceeding their mail or web space quota
- Corrupted disk quota table
- File limit (inode) exhaustion
Today, we’ll take a look at how to troubleshoot, fix and prevent quota exceeded errors.
Fixing mail/web space overage
About 80% of disk quota exceeded errors occur due to users uploading files beyond their subscription limit.
In many cases, we’ve found large files (such as backup, videos, DB dumps, etc.) in the user’s home directory itself. But there are other locations that are not so obvious:
- Trash or Spam mail folders
- Catch-all mail accounts
- Web app log files (eg. WordPress error log)
- Old log files (eg. access_log.bak)
- Old uncompressed backups (from a previous site restore for eg.)
- Un-used web applications
It’s not easy to find these space files if you look at a web panel report. That is why we use Linux command line tools (such as du) to list all directories in a user’s account, and sort them as per size.
Once we’ve found the top directories, we drill down until we locate all non-essential files.
[ Never let disk quota errors affect your website functioning. Get our professional help to fix your website errors at affordable pricing. ]
Special case – User’s files located outside home directory
In self-managed VPS servers, we’ve found user files stored outside the user’s home directory. This could be from past troubleshooting steps, incomplete site restore, etc.
We’ve found such files in /usr, /var, / or in some cases even in /root directory.
We resolve this issue by searching the whole file system with the username, deleting them, and then updating the quota table.
Pro Tip : All this detective work takes time. Business mails coming in during this period will bounce. So, if you’re a shared web host, increase the quota by 100 MB temporarily so that services to the user is immediately restored.
Fixing cPanel disk quota cache error
In cPanel servers, even after a disk quota exceeded error is resolved, the web panel shows the old disk space info. That is, even if a 1 GB file is deleted, the space usage doesn’t show any difference.
It is caused by a cPanel feature called “disk quota cache”. cPanel stores disk usage info for 15-30 mins, to reduce disk access, and thereby keep down server load.
To fix this, our tech support team uses two approaches:
- In powerful servers, we disable this cache (choose off), as server load isn’t affected.
- In heavily loaded or less powerful servers, we educate the users via custom tool tips in the panel that the correct value will be reflected in 15 mins.
How to prevent space overage
Disk space overage results in customers losing their business mails, or websites being down. We’ve been able to reduce the incidence of such downtime in web hosting companies by sending “Disk Quota Warning” emails with specific steps on what to check, and how to delete excess files.
How to fix incorrect quota table
Linux servers store quota information in files such as aquota.user, aquota.group, .quota.user, etc.
In some situations, such as a server crash or hard disk errors, these files could get corrupted, leading to many users getting quota related errors.
When we see a sudden surge in mail or web quota errors for many users at once, we immediately check the quota table. In general, we follow these steps:
- Disable quota for the affected parition (usually /home in web hosting servers)
- Stop services such as mail, web and FTP that can write new files
- Recreate the quota table using the “quotacheck” command (or fixquota in cPanel servers)
- Re-enable quota for the affected partition
Pro Tip : A damaged quota table indicates a more serious underlying problem such as a failing hard disk. When such situations, we scan the server for health or security issues. In many cases, we’ve prevented major downtimes by finding and correcting serious server errors.
[ Are you stuck due to no disk space? Get assistance from our server experts to fix your website issues permanently. ]
Resolving file limit (inode) exhaustion
Our engineers provide tech support for several VPS hosting providers. In these companies, the majority of disk quota exceeded errors caused by VPSs hitting file number limit.
Linux servers use something called inodes to keep track of each file. The trouble is, each server (or VPS) has only a limited number of inodes. So, when all inodes are used up by a malicious activity (eg. a spam attack), new files cannot be created.
Here are a few common causes for iNode exhaustion:
- Thousands of un-delivered spam mails filling up the mail queue.
- Several versions of un-compressed backups
- Catch-all mail boxes that accumulated years worth of mails
- Old cache files of some programs such as “eAccelerator”
- PHP session files that are not automatically deleted
Since VPS users have administrator (root) access, these files could be anywhere. So, we use a top-down scan to find out which folders have the max number of files.
For eg. If /home partition is 100% full, we’d start the scan at /home – like this:
Then the scan is repeated on the top directory, and the process repeated until we find and delete the junk files.
Pro Tip : At 100% inode usage, all services would be virtually stuck. So, as soon as you login, move a few non-critical folders (like old log files) to another parition to immediately restore services. This will prevent mails bouncing, site errors, etc.
Are you having recurrent issues in your hosting servers? Looking for an expert intervention to stabilize your servers? Click here to know how we can help you make things better.