If you have just started to blog, you don’t need too much calculations. You only need to figure out the minimum requirements to run a basic WordPress blog. Here it is, for a basic WordPress installation to run normally, the minimum memory requirement is 256MB. However, it is advised to go for 512MB or higher to cover other components that are using memory.
Once your blog starts to grow then you may consider upgrading to the next higher VPS plan. But what if you are moving your already running blog from WordPress.com or from a shared hosting account to a VPS? How will you choose the suitable VPS plan to avoid any traffic bottleneck or slowness of your blog?
I have talked about the best time to move your WordPress to a VPS in a previous article. And now I am going to help you choose the right VPS plan for your WordPress blog.
To understand exactly what affects your blog performance, you need to know the key components your blog needs to run. The webserver, the database engine, disk space and bandwidth.
Your WordPress blog consists of a number of files and a database, the files includes images and other scripts required to run your blog. The database contains all the text, configurations and the structure of your blog. Every time you open any page in your blog, the webserver receives the information of the requested page from your browser, locates the required page with related resources like images and small scripts.
Before the page loads, it runs queries or requests on the database to get the page data including the text you are reading right now, as well as menu contents and the side bar widgets that displays latest articles and other stuff.
Disk space is where your WordPress blog files and databases exist, and bandwidth is the amount of traffic from and to your blog that you can use. Every time a visitor opens a webpage on your blog, data transmits from the server to his browser, this is traffic. Neither disk space nor bandwidth has an impact on memory and processing power. The webserver and database server consumes memory and processing power and that’s what most of bloggers can’t measure correctly.
Back to disk space. In order to know your blog requirements of space, you can easily check your current disk space usage and consider adding extra 500MB for the operating system and other programs and tools. Unlike shared hosting, running systems and applications consumes the disk space of your VPS as well.
For bandwidth, if you are going for unlimited or unmetered bandwidth plan for your VPS then skip this part. But if are not, don’t worry. Just go to webpagetest.org enter the URL of the page you think has the most contents in terms of images, videos or words count. In the results page, check the size of the page and consider it in the below equation:
Average required bandwidth per month = 30 days x Number of Monthly Page Views x Average Page Size
And that’s all!
The tough part is estimating memory and processor consumption. Normally when you choose a VPS plan you find a comparison table showing the allocated memory and number of CPU cores. Sometimes the processor power per core is clearly shown on the table. If not, then you need to ask your provider or check the FAQs area on their website to make sure you are getting enough processing power.
Most providers nowadays rely on the latest technology, so you don’t have to worry. But, it is advisable to go for 2GHz per core or higher for your blog to run smoothly, considering your provider is not overselling the server. The primary consumers for your VPS processing power and memory are the webserver and the database engine. To run WordPress you need Apache webserver, MySQL database and PHP to be installed on the server.
It is almost impossible to estimate memory usage if you are using WordPress plugins and widgets that might be resource intensive and poorly coded, but it can be calculated case by case.
It is important to know that choosing your VPS plan according to the default WordPress installation will just be a waste of money. Why get a big VPS plan while you can get a much smaller plan for the same WordPress installation?
To easily optimize your WordPress and efficiently use your VPS, you will need to use caching plugins like W3 Total Cache and WP Super Cache. Those plugins will help skipping the processing of PHP pages each time the page loads and use saved html versions of those page. This will greatly decrease the load by minimizing PHP complication and MySQL database queries.
So, assuming you are using caching plugins you will need to calculate only the usage of served html pages and images on your webserver. This will help you choose a cost efficient VPS plan instead of wasting money a larger plans that you don’t actually need.
I have got the coming piece of information from an already running VPS with WordPress and a caching plugin installed. An average httpd process consumes almost 6MB of memory.
Accordingly, let’s go back to webpagetest.org then enter your average page URL to get the number of requests used to fully load this webpage. Once you get the required info you can use the equation below:
Estimated memory required = Number of requests per page load x 6MB
The resulting number shows the maximum memory required at any time to fully load your page considering all requests/processes stay running in parallel. You may think that this is not very accurate, however you can never estimate the exact memory required in Kilobytes. Many factors may interfere and if you have many plugins installed which are high resource consumers or poorly coded you will never estimate your memory requirement correctly.
Now you know how to choose your VPS plan. You will need to check your current disk space, use the bandwidth equation above, and make sure you have 2GHz of processing power per core then use the memory equation I used earlier and add around 256MB for other running tools. And, you are good to go!
If you find this helpful, or need help choosing your VPS plan with specific requirements, please post your comment below.