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 Websites 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 Website, as well as situations where you might want to upgrade 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.
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.
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:
RAM is your Web server's most crucial memory, which serves multiple, related purposes:
Increasing a Web server's RAM means that it will work more quickly and can handle more complicated tasks.
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 Website.
That being said, you might also just have busy Websites 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.
Unlike some other limits, you don't "exceed" your I/O limit and it doesn't generate errors. Instead, a Website 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 Website requires knowing something about its construction. Generally speaking, Websites 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 Website 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.
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:
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 Website 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 Website," they no longer count as a connection until they do something else that generates another connection, like move to a new page.
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 Website at once?