How do each of cPanel's resources affect my site?
With shared hosting accounts, many customers' websites share the same servers and resources. Some of these resources are abundant and we don't place hard limits on them, e.g. we provide all accounts unlimited bandwidth and our Deluxe and Ultimate accounts unlimited storage.
However, other resources are more scarce so we have to ensure one website isn't consuming all of a server's resources—which can hurt performance across all sites on the server— so we have resource usage "maximums" for CPU, RAM, I/O, inodes and Entry Processes for each hosting account. This helps us allocate server resources and ensures top performance hosting for all customers.
The rest of this article explains how these resources affect your site, as well as situations where you might want to upgrade your account. Here are two other articles you might also find helpful:
- Resource limits explains what your account's resource limits are.
- Upgrading Your cPanel Account's Resources explains how to increase the resources available to your account.
Right now, we only have these limits implemented on our cPanel shared hosting accounts (more info). Our other shared hosting platforms use the same types of resources, but do not have the ability to upgrade the resources available to them.
If you want to upgrade your account's resources, head over to Upgrading Your cPanel Account's Resources.
CPU represents the number of central processing units (CPUs) available to your account to process requests. This ranges from loading data into RAM and processing scripts, to delivering content to visitors and writing into databases. Essentially, your CPU underpins the rest your account's resources.
Because servers have multiple CPUs (also known as "cores") available to them, we display the percentage of the number of total cores your server can access.
When Increasing CPU Matters Most
If you have a website that uses a database or relies on scripts, such as PHP, increasing your account's CPU will really enhance your website's performance. A few other things that make having access to additional CPUs beneficial are:
- High volumes of traffic
- Resource-intensive third-party add-ons, like themes and plugins
- Outdated or poorly written code
- Non-optimized PHP configuration
RAM is your Web server's most crucial memory, which serves multiple, related purposes:
- Website data loaded into RAM loads most quickly
- Having more RAM prevents your CPU from having to retrieve data from the hard disk as often
- Scripts that write to memory (e.g. PHP) will have more breathing room before they run out of space
Increasing a Web server's RAM means that it will work more quickly and can handle more complicated tasks.
When Increasing RAM Matters Most
Increasing your account's RAM limitation will increase your account's overall performance — so, if you want your website to be quicker in general, it's a good idea.
However, it's also compelling to increase your account's RAM when you know it's exceeding its limits and displaying 500 or 503 errors. However, exceeding your RAM limitation is often a symptom of an engineering problem and not the cause of the issue.
Exceeding your RAM limitation is often caused by a poorly configured plugin or script that floods the memory available to it. Increasing the RAM might improve the website's performance and stop it from generating errors, but it is possible that they will creep up again (even if it's less frequently). In this case, increasing the RAM further isn't the right solution - you need to fix the problematic element of your site.
That being said, you might also just have busy sites that are exceeding what their current limits can handle. Good news: increasing the RAM will solve these problems!
I/O is short for "input/output." In the context of a hosting account, it's the "throughput" or speed of data transfer between the hard disk and the RAM. Obviously, increasing the speed of transfer makes the process faster.
When Increasing I/O Matter Most
Unlike some other limits, you don't "exceed" your I/O limit and it doesn't generate errors. Instead, a site just "hangs" while it waits for the data to transfer from the hard disk to the RAM.
Knowing when increasing I/O will improve a site requires knowing something about its construction. Generally speaking, sites that need to read and write a lot of data, such as those streaming any kind of media or with many database records, benefit most from I/O enhancements. However, increasing the I/O limit will not fix every issue that cause the site to lag or hang.
File Usage counts the number of inodes on an account. However, an inode is more than simply a file — it's a piece of data that Linux-based systems use to reference a file or a directory. To make the arithmetic even trickier, you can also create multiple inodes that reference the same file or directory.
Roughly, though, you can say that the number inodes is the number of files plus the number of directories.
Another important distinction with our cPanel accounts is that each email a customer stores in their address counts as an inode — same thing for the folders they create to organize their email.
When Increasing File Usage Matters Most
If you need to store more files, directories, or emails on your hosting account, adding more inodes (via File Usage) is a simple way to make the problem disappear.
You might also have some script or plugin that's creating an inordinate number of files or directories on your accounts. In this case, increasing the File Usage probably won't resolve the issue; the runaway script or plugin might just fill the additional inodes available to it. Instead, you'll need to resolve the issue with the file itself.
Entry Processes are the number of connections your account can process simultaneously. Understanding what constitutes a connection is important, though, because it's not as straightforward as "the number of visitors on your website." Here's what constitutes as a connection:
- Your website delivering data via HTTP
- Your hosting account transferring data via SSH
- A Cron job processing
However, the connections are only counted while they're processing. As soon as they've finished, they no longer count as processes. For an example, if a visitor comes to your site and your home page takes .1 seconds to load and generates only one HTTP connection, that visitor counted as one process for .1 seconds. Even though that visitor is still "viewing your site," they no longer count as a connection until they do something else that generates another connection, like move to a new page.
When Increasing Entry Processes Matters Most
As complicated as Entry Processes are to understand and calculate, it's incredibly easy to tell when you need more: when websites generate 508 (Resource Limit Reached) errors. Simply upgrading your account's Entry Processes makes those types of errors occur less frequently.
For more information about how Entry Processes work, see How many visitors can view my site at once?