Onyx Resources - CPU, RAM, Storage and Containers Explained
CPU, RAM, Storage and Containers - You've likely come across these terms while deciding on the right web-hosting plan for you, but what do they actually mean?
The following guide aims to give a simple overview of what each of these key aspects of your hosting plan actually do and why they're so important.
What is a CPU?
The CPU (Central Processing Unit) is the brain of the computer. Your server will have multiple CPU cores, similar to your home computer however you will share the CPU cores with other users on the server.
The CPU handles requests made to your server. For instance, when a visitor clicks onto your site, the queries that run that build the site and deliver the webpage will be processed by your CPU in the order they are received.
While your CPU can process multiple requests at once, if it receives too many requests it can become overloaded. This wall cause the performance on the site to slow down dramatically. Generally you will see this in cases of high traffic or plugins / scripts that generate a large number of simultaneous requests.
What is RAM?
RAM stands for Random Access Memory. You can think of RAM as being similar to your short term or working memory. In the same way your brain utilises your short term memory to do simple calculations in your head while remembering why you're doing the calculation, the brain of the computer, the CPU, uses the RAM to hold onto the short term data that it needs to remember and recall quickly while completing its assigned task.
For example, when you load a webpage, your RAM will hold onto the users information, the pages they've visited, the ad's they are shown and the suggested links just to name a few. Now for a human, remembering and updating all of this information constantly is a challenge because even though a thought might be in our short term memory, most of us don't have full control of how quickly we forget things.
For a computer dealing with this information for just a single user is very easy because the data for this user will be stored on the RAM until it is told to remove it. This means that a small portion of your RAM is used up for each query in exchange for speedy calculations and a quick experience for your visitor. This also means that if your site is trying to complete too many tasks, it could use up all of the available RAM and will then have to clear through the tasks it already has before moving onto the next one. This is what causes your website to slow down or even appear unavailable with a 503 Error.
What is Disk Space?
If we think of RAM as your short term or working memory, your disk space is closer to your long term memory.
Your long term memory is much slower than your working memory as your brain does not need to be able to instantly recall this information and will have to do a small amount of thinking before retrieving something from long term memory - Similar to when you can't think of a word but its on the tip of your tongue, Your brain has it stored somewhere but it needs a second or two to find it.
This is also the case for computers. The data that is needed immediately will be stored in your RAM. This will include the working data for queries that impact your site speed whereas long term files and core site files that are not being constantly accessed to perform queries can be stored in the long term memory.
This is because RAM is significantly faster than normal storage Disks and thus much more expensive so the computer (or server) will have much less RAM compared to Disk Space.
What is a Container?
Keeping on with the human brain analogy, a container can be considered a brain of its own as it is comprised of the other key resources that your server needs to serve your website.
Think about how much easier everyday tasks would be if you had a second brain that contained all of your knowledge and memories, but you could have it do something completely different from the task you are currently working on. This can then be expanded further by adding additional "brains" as you gather more and more tasks.
For a normal server, all of your resources are running on that server / cPanel instance, this means that all of the processing and manipulation of data is being done by the same computer. While this is certainly effective for most websites, it is possible to achieve much higher speeds and greater efficiency using containerisation.
So, in its simplest form, a container can be thought of as a smaller server that will split the overall workload and allow your resources to complete more tasks in a more efficient manner.
So now you know what each of these resources do and why they're important.
In most cases, these will be hard limits and you will have to decide these in advance when purchasing your hosting plan, however, with Onyx we have created a system that does things a little differently.
Onyx allows your site to easily scale to ensure that it is given the appropriate share of resources regardless of which hosting plan you are on. For more information on Onyx resource limits, we have a handy guide on Onyx plan resource allocation.