Perhaps your hosting business has moved to the next level or you’re taking the first step in creating your dream app. Whatever the reason, purchasing a suitable VPS (Virtual Private Server) is an important decision.
It all starts with a question - What resources does my VPS actually need?
Finding the right answer can be a challenge. You risk either purchasing a VPS configuration that’s too small to accomplish the task, or a VPS that’s too large and wastes your money on unnecessary capacity.
In this blog post we want to shed some light on what your actual resource requirements might be and give you all of the necessary tools to come to your own conclusion.
We’ll cover:
- What are CPU Cores?
- What is RAM?
- What is storage?
- What is bandwidth?
- Where to find out more information
Resources
Without a doubt, the most common VPS question our support team deals with on a daily basis is “How much Resource should my VPS have?”
The answer here is generally the same - “It depends”.
Now, I understand that this might not be the answer most people want to hear, but unfortunately, it's the truth!
No two plans are the same, no two servers are the same and no two clients are the same. Selecting your VPS size is a very personal process due to its customisability and getting this right is crucial to your success.
If you opt for too little RAM, the first time your new website runs a successful advertising campaign, you’ll hit your resource limits and the site will go down. Too much storage and you’re wasting money on a product that you’ll never use.
In other words, you wouldn’t want to show up to your Tour de France debut on a tricycle, nor would you buy a brand new Ferrari to only drive it 5 mph. The key to purchasing your VPS is getting the right tool for the job.
In order to buy the right tool, you need to understand exactly what you’re buying.
What are CPU cores?
CPU stands for Central Processing Unit and is often referred to as the processor. This is the brain of your server. It is responsible for interpreting instructions, executing the instructions, processing any data and performing tasks.
Sounds like a lot, right? Now imagine doing this, hundreds of times a second for each user on your website.
While your CPU has been designed with this job in mind and can do it well, the number of instances it can handle at once is ultimately limited by the size of the CPU.
This is why CPUs utilise cores.
What is a CPU core?
A CPU core is a physical part of a CPU that helps it complete the tasks you’ve assigned to it. To put it simply, it's a smaller brain for your server's bigger brain.
Rather than the CPU going through its list of tasks one by one, it can delegate these tasks to each of its cores to execute more instructions in the same amount of time.
This allows modern software to take advantage of scaling. This, put simply, is just assigning smaller parts of one large task to more cores to complete the task more efficiently.
Our guidelines for CPU resources:
Deciding on the recommended number of cores is more difficult than the other resources we will discuss later. This is due to most software being able to run on fewer cores (doing this will impact the overall speed).
Most modern web applications have been designed with multiple core scaling in mind. As such, additional CPU cores will directly translate into better performance and higher speeds under load.
Based on this, we generally recommend starting with a minimum of two cores. While some software can run on less than this, for example cPanel, if you plan on running any CPU intensive scripts this will quickly overwhelm a single core and lead to the site running slowly for the end user - not a great look!
In most cases, two cores will be sufficient to run the majority of projects, however most popular software really benefits from additional cores and scales very well.
A good example of this is a MySQL database server or a mail server. This will normally run on 2 - 4 cores, however, the overall speed will be greatly increased by adding additional cores and allowing the server to spread the workload.
Generally, unless advised otherwise by your developer, you’ll want to start with 2-4 cores and monitor the server performance to allow you to either increase or decrease this.
What is RAM?
As we’ve discussed, the CPU is like your server's brain. Continuing with this analogy, the RAM is like your server's short term memory or working memory.
When a new user accesses your server or application, the server will generate a new instance of your site for them. This uses a little bit of your servers short term memory to remember where they are and what they’re doing. This short term memory is measured in Gigabytes and once it's full, your server can no longer keep track of what your users are trying to do!
This means that your RAM is one of the most important components of your server. Each and every request that is made to your server will impact your overall ram usage and not having enough will result in crashes, reboots and downtime.
Our guidelines for RAM:
Choosing how much RAM you add to your server is one of the easier decisions when configuring your VPS. This is due to most websites using similar amounts.
The most important factor here is taking into account both your minimum specifications and your projected growth and striking a balance between them to ensure you always have enough RAM.
Below are a few examples of what you can run on different standard configurations.
We would suggest using this as a starting point. Once you have a general understanding of what your VPS will likely need, discuss this with your developer to get an idea of how much additional RAM you may or may not wish to add depending on how quickly you expect your project to grow.
1-2 GB of RAM
Generally, most people would benefit from a little more RAM than this due to how rapidly projects tend to scale.
Around 2GB is sufficient for a small web hosting server. This could include running cPanel, Plesk, MySQL, LiteSpeed or Apache and the typical monitoring scripts and firewalls.
In this case, it comes down to the number of domains and the typical traffic you expect to see. With proper configuration and caching, you can expect to run around 20 domains with low traffic without issue.
3-4 GB of RAM
This is the usual starting point for most of our clients.
It will allow you to run the services above while allowing some additional headroom for larger sites and more active clients. The additional 1 - 2 GB of RAM will give you that additional capacity for sites that have higher traffic and to cope with traffic spikes.
If you’re planning to give your clients access to cPanel and webmail, we’d suggest this as the minimum requirement due to the benefits to the user experience in terms of overall speed and reliability.
8GB of RAM
8GB of RAM is ideal for larger sites. As we’ve covered, every single user that loads your site is creating an additional instance of this site and is adding more strain to the resources.
During advertising campaigns or when your site is mentioned in traditional media, it isn’t uncommon for thousands of people to try to view the site at once, this can result in smaller plans being overwhelmed quickly.
If you are planning to host any form of Ecommerce site, 8GB of RAM will give you the additional breathing room for situations where you’d expect traffic to increase significantly.
32GB of RAM and above
32GB of RAM is quite a lot for most projects barring a few specialised cases and this is the point where most sites will begin to experience diminishing returns.
If your project is regularly using more than 16GB of RAM, we would recommend looking towards external caching before looking at upgrading your RAM.
In the case of larger and heavier websites, for example those that host large high-quality videos and images, they will usually benefit more from using a CDN than by throwing additional RAM at the problem.
This is not to say that some projects won’t need this amount of RAM, rather, it’s to say that this should be considered once other methods have been put in place.
Before deciding to purchase a VPS with this much memory, we strongly recommend speaking to your developer regarding alternatives such as external caching, CDNs and potentially splitting the workload over multiple VPS’s.
What is storage?
If we continue with the human brain analogy, this would make the storage your long-term memory. Out of all the comparisons to your brain, this is the most fitting.
Your long-term memory is much larger than your short-term memory, but as a result is also slower to access due to the amount of data you have to work through to find what you need.
This means that choosing your storage is the easiest of the four resource-related decisions we’re covering in this article as you realistically only need to purchase slightly more than you need.
Our guidelines for storage:
Throughout the web hosting industry, storage is the easiest resource to oversell. Some very large companies are quite literally based on overselling cloud storage.
Look at cloud storage services like Dropbox, Google Drive, OneDrive and other massive companies that profit from overselling cloud storage capacity.
The truth of the matter is that, in most cases, you really only need to purchase the amount of storage you can reasonably expect to use. The easiest way to determine this is to look at how much space you are currently using for your project. The majority of sites hosted by our resellers have less than 2.5GB of disk space allocated to each cPanel account.
Sounds great, right?
Well, when you're running your own VPS, it's not quite that simple. There are a few other aspects of VPS hosting that need to be considered before you decide on how much storage you wish to purchase. For example, upgrading and updating your software packages will generally require a certain amount of free space for temporary files before the upgrade can start.
For most people, my general recommendation is to look at what you are using at the moment, add an additional 10GB to guarantee free space for future upgrades and then do a simple estimate on how much larger you reasonably expect your project to become.
Please Note: Once you have your estimated storage, this will likely have to be rounded up to the nearest number your VPS provider allows. Katapult & Krystal VPS's allocate storage in 1GB blocks.
Example:
This article idea has come from a real world example of my own. I run a few small websites within a single Krystal cPanel account that have grown to the point where a VPS was my next logical upgrade.
The first step to deciding on my VPS requirements was to identify how much space was currently in use. This was as simple as logging into my cPanel account and checking the "Disk Space" usage and allocation.
In my case, my websites had a combined total usage of 5GB.
The next step was determining exactly what I wanted to run on my VPS. In this case I opted to run cPanel. The easiest way to find out how much storage you will need is to check the product's documentation.
cPanel's documentation suggests a minimum disk space allocation of 20GB with an additional 5GB free for upgrading.
At this point, my total expected storage allocation is around 30GB.
Due to the emails associated with my services, I can expect that these will grow over time and have decided that within the next year, I could reasonably require upwards of 10GB of emails to be stored on the server.
Factoring in my email usage takes my current estimated storage to around 40GB.
As mentioned above, once you have your estimate, you will round up to match your provider's storage blocks. In this case I will be using A Krystal VPS running on Katapult and this works on 1GB storage blocks.
I now know that I should configure my VPS with 40GB of storage.
This ensures that I will be using the majority of my allocated storage, leaving significant room for growth and all without purchasing more than I need!
What is bandwidth?
I'm afraid I have run out of clever human brain analogies for this one!
Before we dive any deeper into "Bandwidth", we should clear up a common misconception.
When most hosting companies refer to bandwidth, they are actually referring to data transfer.
OK…but what's the difference and why does it matter?
Well, bandwidth actually refers to the total amount of data that can be transferred at one time. Whereas data transfer is simply a measurement of the total amount of data (measured in bits) that is transferred into and out of your VPS.
When your website gets a new visitor, they will download all the different portions of your website. These include things like HTML, CSS, Images and JavaScript files. These all add up to your total data transfer usage.
For most hosts, calculating how much data transfer usage you will require before purchasing your VPS is a key factor to your success, however, this is much more speculative compared to the other resources we have discussed.
Our guidelines for transfer limits:
Transfer limits can be a difficult option to give a clear recommendation for. Your transfer usage will tend to fluctuate much more than any of the resources discussed above due to occasional traffic spikes, bot traffic and periods where the site receives less traffic.
Due to the nature of transfer usage fluctuation and the risks involved in going over your allocated transfer limit, I would suggest looking towards a VPS host that allows unlimited transfer usage like a Krystal VPS powered by Katapult or for advanced users, a self-service host that has a very high initial limit like a Katapult VPS.
All Katapult plans come with a free 1TB (100GB on ROCK-1) per month transfer limit - That's 1000x higher than AWS!
Not to mention that both of these are 100% powered by renewable energy to help you do your bit for the environment and grow your business at the same time!
If you do wish to purchase a VPS with another host that does not offer unlimited bandwidth, I generally recommend this online bandwidth calculator.
The multitude of online tools available to calculate your bandwidth usage should ideally make this a much easier decision.
Please note: When you are calculating your data transfer requirements, please ensure you take bot traffic into account as missing this could result in an incorrect estimate!
Where to find out more
Now that we’ve covered the basics of resources and what you might need depending on the project, you should have the necessary tools and knowledge to make your decision with your VPS.
If you’re still not sure, I have a few options for you!
Speak to your developer!
If you have a developer on hand that will be building your project, they will always be your first point of contact for deciding on the resources for your project. While the Krystal team can help advise you, nobody knows your project better than the person building it - their advice will be invaluable!
Krystal support team
We have a dedicated team to provide support and answer any pre-sale questions you may have. As mentioned above, ideally you should speak to your developer first as our team will only be able to provide advice based on what you already know and their own experience.
You can find the details contact Krystal Sales and support here and what information you should provide to them to help answer your question.
Community Support
Did you know we have a Krystal community?
This is a community filled with Krystal staff, like minded individuals who use Krystal products and have a wealth of knowledge in a vast range of subjects.
If you'd like a place to bounce ideas and speak to others that have been in this position and may be able to share some advice from their experience, I invite you to join the Krystal Community Discord, say hello, and ask away!
Conclusion
First of all, congratulations on taking the first steps to launching your new VPS!
Choosing the correct resource allocation for your project can be one of the most difficult steps. Hopefully you now have a fundamental knowledge of what goes into a VPS plan as well as a better idea of what you need and where to look for answers.
As with most things in life, while this documentation applies to the majority of sites and projects, the recommendations aren’t set in stone. We would strongly recommend speaking to your developer or our Pre-sales team to ensure that you have the best possible foundation for your new project.
Share this article
About the author
Tristan P
I'm Tristan! I'm Krystal's Technical Community Manager and self-proclaimed documentation wizard. When I'm not writing, you'll normally find me playing some form of instrument or harnessing the power of the internet to pretend to drive a truck with my little plastic wheel.