On shared hosting accounts, the same server (and the resources of that server) are shared by multiple customers’ websites. To ensure one website isn’t using all the resources on a server and affecting the performance of all the other websites on the server, there are limitations in place. These limitations come in the form of a maximum amount of resources that can be used for CPU, RAM, I/O, inodes and Entry Processes by a particular hosting account.
This article explains how each one of these particular resources affects your website and outlines some situations where you might want to upgrade your account. The "CPU and Concurrent Connections" module in your account's cPanel
will show you when it's reaching the limits of any of your account's resources.
CPU
This represents the percentage of a CPU that is available to process requests to your account. These requests range from loading data into memory and processing scripts to delivering content to visitors on the website and writing into databases.
The CPU supports the rest of the resources in your account. The resource availability is displayed as a percentage of usage of a core, the core being the CPU, since servers have multiple cores.
When Is It Most Beneficial to Increase your CPU
If your website uses a database or relies on scripts (eg PHP which powers WordPress, for example), an increase in your account’s CPU will really enhance its performance. Increasing the CPU in the following situations will also be beneficial to your website:
- Your website has high volumes of traffic
- You’re using resource-intensive third-party add-ons, like themes and plugins
- Your website has outdated or poorly written code
- Non-optimized PHP configuration
RAM
You web server’s RAM (it’s most crucial memory) serves multiple purposes. Having more RAM will reduce the frequency with which your CPU needs to retrieve data from the hard disk. Since retrieving data from the hard disk is a slower process than retrieving data from RAM, website data loaded into RAM will load more quickly, increasing your website’s performance. Additionally, scripts that write to memory (such as PHP) will take longer to run out of space.
An increase in your web server’s RAM will allow your server to work more quickly and be able to handle more complicated tasks.
When Is It Most Beneficial to Increase your RAM
Increasing your RAM limit is, in general, a good idea if you want your website to be quicker, as it’ll increase your website’s overall performance.
It is, however, also tempting to increase your account’s RAM when it’s exceeding its limits, which can cause 500 or 503 errors to be displayed. But exceeding the RAM limit is often a symptom of a problem with a poorly configured plugin or script. This poor configuration can cause the memory to be flooded.
In this case, increasing the account’s RAM will mitigate the problem and might even solve it temporarily. But you are likely to run into the issue again as you get more traffic to your site. So it’s recommended to track down and solve the problem in the website.
On the other hand, if the website is just really busy and exceeding the current limits, then increasing the RAM is the right way to go to solve this problem.
I/O (Input/Output)
In a hosting account, I/O is the speed of data transfer between the HDD/SSD and the RAM (or a visitor to your web site, in the case of a large file to be downloaded). Increasing the I/O will, of course, make the process faster, since it is, effectively, an increase in speed.
When Is It Most Beneficial to Increase the I/O?
I/O is different from the resources previously mentioned. You don’t exceed your I/O limit and it won’t generate errors. However, if the I/O is insufficient, your website will just hang in there waiting for data to be transferred from the HDD/SSD to the RAM.
In order to know when increasing I/O will result in an improvement in the website you’ll need to know about the website’s construction. Sites that need to read and write a lot of data (streaming sites, sites with a lot of database records, etc.) will benefit the most from an increase in I/O.
This does not mean increasing the I/O limit will fix every lag issue. To determine when this is the right measure to take, you’ll need to study the construction of the website.
File Usage (inodes)
The number of inodes on an account is counted by File Usage. Inodes, however, aren’t the same as files. They are pieces of data used by Linux-based systems to reference files and directories.
Speaking in a simplified manner, the number of inodes is the number of files plus the number of directories. In reality, though, more than one inode can reference the same file.
When Is It Most Beneficial to Increase File Usage
Obviously, if you simply need to store more files, directories and emails on your hosting account, increasing File Usage (adding more inodes) will make the problem go away.
If you have a plugin or script that is creating an excessive number of files or directories in your account, though, increasing File Usage won’t resolve the issue. In this case, you need to resolve the issue with the problematic plugin or script itself.
Entry Processes
This is simply the number of connections your account can process simultaneously.
Connections, however, aren’t just a visitor on your website. A connection can be:
- Data being delivered via HTTP by the website
- Data being transferred via SSH by the hosting account
- A Cron job processing
It is important to note that a connection is only counted while it’s processing. Once it finishes, it’s no longer counted.
So if you have a user come to your website, it will cause an HTTP connection to be generated while the home page loads. Once the page finishes loading, that user is no longer counted as a process until they do something else on the website that generates another connection.
When Is It Most Beneficial To Increase your Entry Processes?
It’s very easy to tell when you need more Entry Processes. The "CPU and Concurrent Connections" module in your account's cPanel will show you when it's reaching the limits of any resource, including Entry Processes.