• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

02 7903 0216

     

Open Ticket

    

Client Area

FASTDOT Web Hosting Australia

FASTDOT Web Hosting Australia

Australian Cloud Hosting

  • Web Design
    • eCommerce Development
    • Branding
    • Web Design
  • Domains
    • Register
    • Domain FAQ
    • Domain Extensions
    • MyDNS Manager
    • Domain Transfer
  • Hosting
    • WordPress Hosting
    • Sydney cPanel Hosting
    • Magento Hosting – eCommerce Website
    • eCommerce Options
      • Managed Magento Hosting
      • PrestaShop Hosting
      • OpenCart Hosting
      • CS-Cart Hosting
    • Business Emails
  • Cloud Servers
    • VMware ESXi Hypervisor
    • Equinix – ISO Certified Data Centres
    • Cloud Hosting Info
    • Virtual Machines
  • Resources
    • Partner Program
    • Transferring Websites
    • WordPress Tips
    • Email Tutorials
    • Hosting in Australia
    • Apps Galore
    • Tutorials & News
      • SEO
      • VMware VPS Cloud
      • PHP and MySQL
      • Security
      • Linux Guides
      • Server Management
Order Now

How to Manage Inode Quotas and Control Inode Usage

August 5, 2021 by Editor

The CentOS operating system has several features that restrict users’ resource consumption. They help web hosts and server administrators to fairly distribute resources on shared servers and to create tiered account systems. Without quotas, rogue users can—accidentally or deliberately—use more than their fair share, hurting their neighbors’ web hosting performance.

Inode quotas limit the number of files a user can create. In this article, we explore what inodes are, how to display inode quotas in cPanel, how to create inode quotas on the command line, how to automate quotas with cPanel & WHM’s standard hooks system.

What Are Inodes?

Inode is short for index node, the filesystem metadata that stores information about each file and where it is. Every file and directory has an inode that contains ownership details, permissions, the file’s size, the filetype, and pointers to its data. The contents and structure differ by filesystem, but inodes play a similar role in all Unix filesystems.

Because every file has an inode, enforcing an inode quota is the same as enforcing a limit on the number of files. Inode quotas don’t control the amount of data a user can store in their home directory; they put an upper limit on the number of files, not the size.

In the past, inode quotas were essential because each filesystem had a fixed quantity determined when the disk volume was formatted. If users generated too many files, they could use all the inodes, making it impossible to create new files. This was a common occurrence on email servers with inboxes that contain many small files. However, beginning with CentOS 7’s release in 2014, the default filesystem is XFS, which allocates inodes dynamically—you can’t run out of inodes.

However, large numbers of files create other problems. They can degrade hard drive performance and increase memory consumption. Additionally, each inode consumes a small amount of disk space, by default 512 bytes on XFS. In rare circumstances, a user could generate so many files they fill the volume with inodes, leaving no space for data. This usually only happens when buggy scripts autogenerate billions of tiny or empty files, but it’s a risk that should be guarded against.

Displaying Inode Usage In cPanel

You can inform cPanel users of their inode limits with the Statistics sidebar’s File Usage feature. It displays both used inodes and available inodes, allowing users to manage file numbers when they approach their limit.

The File Usage feature isn’t displayed by default, but server administrators can activate it in WHM. Select Tweak Settings under Server Configuration in the WHM sidebar menu. Enter “inode” in the search box, and activate the Display File Usage information in the cPanel stats bar (inode count) tweak.

Reducing Inode Usage

cPanel users approaching their inode quota limit can free inodes by deleting files. There are two types of inode quota: soft and hard. If you exceed your soft quota, you will still be able to create files. If you exceed your hard quota, you will not. Many of your hosting account’s features need to generate files. If you hit the hard limit, you won’t be able to add new web pages, receive emails, install software, or many other common tasks.

It’s better to reduce inode usage by deleting files long before you hit the hard limit. You can remove files by:

  • Deleting unused files from your hard drive with the cPanel File Manager.
  • Deleting or archiving emails.
  • Removing old backups.
  • Clearing content management system and web server caches. Caches tend to create lots of small files.

Creating Inode Quotas for XFS Filesystems

cPanel & WHM does not include an inode management interface, but server administrators can use the operating system’s built-in tools to assign user quotas.

To use inode quotas, the filesystem must be mounted with the “userquota”, “uqouta”, or “quota” option. To verify quotas are activated and enforced, open the WHM Terminal interface and run the following command:

less /etc/fstab

This displays the filesystem configuration options. Find the XFS filesystem you want to apply quotas to, and verify that one of the options we listed above is present. Quotas are activated by default on cPanel servers, so they should already be configured.

Here we can see that the volume mounted on root has the uquota option, which means it’s ready to enforce inode quotas. If you don’t see a similar option, you will have to enable quotas with WHM’s Initial Quota Setup feature.

In WHM, navigate to Server Configuration -> Initial Quota Setup. Click the proceed button. Depending on the filesystem’s size, enabling quotas may take some time. Once they are enabled, you must reboot the server.

If you prefer to activate quotas on the command line, you can run the following commands as root:

/scripts/initquotas
/scripts/fixquotas
reboot

To verify that quotas are active, rerun the “less /etc/fstab” command and check that the relevant volumes now have the quota option as discussed above.

Next, we have to apply a quota to a user. To do so, we use the “xfs_quota” command as root:

xfs_quota -x -c 'limit -u isoft=100000 ihard=150000 cpanel1' /

This command gives the user “cpanel1” a soft limit of 100,000 inodes and a hard limit of 150,000 inodes on the filesystem mounted at “/”. In a real-world hosting scenario, you are unlikely to use the “/” partition for user data, so ensure that you exchange the “/” for the correct mount point of your filesystem.

Once the inode quotas are set, the cPanel user will now be able to see the limit in their Statistics sidebar’s File Usage section. It displays the soft limit and consumed inodes as a percentage.

Automating Inode Quotas

The manual method is fine for a handful of users, but it would soon get tiresome on a busy shared hosting server. That’s why cPanel provides standardized hooks that can trigger scripts when cPanel & WHM performs an action, such as creating a new hosting account. Using hooks and custom code, you can automatically apply inode and other quotas when accounts are created or when dozens of other events occur.

Hooks can trigger Perl modules and scripts, PHP scripts, and shell scripts. We describe the process of creating a simple shell script and registering it with a hook in How to Setup Standardized Hooks with BASH in cPanel & WHM. For more complex functionality, we recommend writing a Perl module, which will have access to variables in the cPanel environment. You can find more information in our Guide to Standardized Hooks.

As always, if you have any feedback or comments, please let us know. We are here to help in the best ways we can. You’ll find us on Discord, the cPanel forums, and Reddit. Be sure to also follow us on Facebook, Instagram, and Twitter.

More great articles

Troubleshooting High Server Loads
UAPI- What’s New in 82
Four Cyber Week and Black Friday Marketing Strategies for eCommerce Businesses
YouTube And Your Business

Category iconTutorials Tag iconGeneral Knowledge

Primary Sidebar

Recent Posts

  • How to Upload Files Using the cPanel File Manager?
  • How To Increase the PHP Max Upload Size in cPanel®?
  • Choosing a hosting platform in 2021
  • VARCHAR vs. TEXT for MySQL Databases
  • What Are the Best Shopify® Alternatives in 2021?
Computer Vandalism and Hacking
How To Configure a Cron Job
How to Use PHP-FPM with cPanel
cPanel & WHM LTS Named Tier Autofixer and You

Categories

  • Application Hosting
  • Australian Cloud Hosting
  • cPanel Hosting
  • DNS and Domains
  • eCommerce Hosting
  • Email Tutorials
  • Legals
  • Linux Tutorials
  • Operating Systems
  • PHP and MySQL
  • Register a Domain Name
  • Search Engine Optimization
  • Security
  • Server Management
  • Tutorials
  • VMware Cloud Hosting
  • Web Hosting Tutorials
  • WordPress Tips & Tricks
Australian web hosting

Footer

Recent Posts

  • How to Upload Files Using the cPanel File Manager?
  • How To Increase the PHP Max Upload Size in cPanel®?
  • Choosing a hosting platform in 2021
  • VARCHAR vs. TEXT for MySQL Databases
  • What Are the Best Shopify® Alternatives in 2021?

Legals

  • Terms&Conditions
  • SLA
  • Acceptable Usage Policies
  • Privacy Policies
  • About FASTDOT
  • ISO Certified

Contact

Australia: +61 02 7903 0216
Submit a Support Ticket

Company

FASTDOT.COM.AU PTY/LTD
ACN 002 454 631
200 Bourke Rd, Alexandria NSW 2015 Australia
Processing by eWay, PayPal and Bitcoin

blankNSW Government Provider

Made with in Sydney/Australia

Copyright © 2022 FASTDOT.COM

All rights reserved. Return to top