EasyEngine v4 and WordPress on Vultr

EasyEngine is a great solution in case you want to set up sites under a cheap VPS or a highly expensive one. Overall you will be able to scale pretty easily if you have the resources, time and effort to set up everything that you need for your project.

For starters, the EasyEngine installation is pretty simple and can be set up on almost any kind of VPS servers out there. In the current test. I will be using Vultr and make some tests and compare the performance with and without disk cache, Memcached and no-cache.

For a caching plugin, I will be testing out Swift Performance Lite which comes with the most simple setup for disk and Memcached configurations/connections.

Installing EasyEngine

The installation of EasyEngine is extremely simple and you will only need to run the script:

wget -qO ee rt.cx/ee4 && sudo bash ee

Creating the test site

Once the installation is complete and all of the Docker images are downloaded we can set up your first site easily like this:

sudo ee site create easyengine.m0sh1x2.com --type=wp --ssl=le
EasyEngine – WordPress with Let’s Encrypt setup

Note: You will have to point the domain to the IP of your VPS otherwise the SSL certificate won’t be installed. Currently, Let’s Encrypt certificates support HTTP and DNS based validation. In case EasyEngine is not connected to your CloudFlare account or your DNS Zone or the domain is not pointing to the IP of the instance then the certificate setup will fail. But you will be able to install it after that.

Renewing and testing the SSL Certificate

sudo ee site ssl-renew easyengine.m0sh1x2.com --force

EasyEngine with manual SSL renewal

In order to verify the SSL certificate we will use SSLShopper and check if everything is working accordingly:

SSLShopper certificate verification

Preparing for the performance tests

Once we are set up with the site and the SSL Certificate then we will only have to make some very simple tests:

  • Cache disabled
  • Disk Cache with PHP
  • Disk Cache with rewrite rules
  • Memcached for page cache

In order to get some dummy data, I will be using wptest.io, which is a very nice set of data for making performance tests on small to medium sized blogs.

Once everything is imported it is time to start testing out the performance which we will get from the VPS and the EasyEngine stack.

Testing out with no cache

For this test we will try out three locations, one in Europe – Frankfurt and in the US – Washington and New York.

Note: Frankfurt is the origin Datacenter so we will be getting best results with lowest wait times for all tests made from there.

TestLocationLoad TImeWait TimeRequestsPage SizeURL
PingdomFrankfurt332 ms118.2 ms27322.6 KBLink
PingdomWashington1.12 s230.7 ms27322.6 KBLink
KeyCDNFrankfurt325 ms 105.5 ms26 773 KBLink
KeyCDNNew York1 s214.5 ms26773 KBLink

Currently those requests are acceptable but in case the server has a bit more load then they will vary and in most cases will fail with a timeout. If the caching plugin is disabled or CloudFlare not enabled with full caching then we will be having a bad time if there are 10-50 concurrent users.

Testing with disk cache and php

TestLocationLoad TImeWait TimeRequestsPage SizeURL
PingdomFrankfurt371 ms22 ms11328.9 KBLink
PingdomWashington896 ms182.3 ms11328.9 KBLink
KeyCDNFrankfurt360 ms 17.9 ms12873 KBLink
KeyCDNNew York1.1 s214.5 ms12 873 KBLink

In this test we can see that the default settings provided by Swift Performance Lite boost the Wait time quite a lot and reduce the total amount of requests. Due to the size of the page any compression may not work but the difference will be quite big.

Testing with disk cache and rewrite rules

TestLocationLoad TImeWait TimeRequestsPage SizeURL
PingdomFrankfurt295 ms27.2 ms11328.9 KBLink
PingdomWashington1.04 s186.5 ms11328.9 KBLink
KeyCDNFrankfurt672.2 ms 13.3 ms12873 KBLink
KeyCDNNew York1 s181 ms12 873 KBLink

Compared to disk cache with PHP the results are similar. If the redirects to the cache are going directly to the cached files then this method will be best for us. Otherwise if there are no other caching options available then this is what we must choose.

Testing with memcached

TestLocationLoad TImeWait TimeRequestsPage SizeURL
PingdomFrankfurt312 ms48.1 ms11328.8 KBLink
PingdomWashington927 ms171.8 ms11328.9 KBLink
KeyCDNFrankfurt370 ms11.1 ms12871 KBLink
KeyCDNNew York1.1 s207.2 ms12 871 KBLink

Compared to the disk cache setup there isn’t much difference in performance. In case we are comparing +- 20 milliseconds then there might be even delays but this isn’t something that we might consider as an issue. For small sites disk cache might be the best option because we will be saving a lot of RAM usage but if you have a huge WooCommerce site then you can use Varnish with Memcached and throw up some RAM in order to get the best performance that you can.

Thank you for checking out the article!

Disclaimer: I have wrote this article for fun and comparison of cached and uncached sites, the plugins and services that are being used are the ones that are easiest for me to use.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.