Best WordPress Hosting Round 1

 wordpress-hosting-performance

Load Testing | Performance Testing

 

Providers I picked are web hosting providers I see often recommended to people for WordPress hosting (with the exception of Kickassd who was recommended to me by a PHP developer friend). The testing is meant to somewhat mimic real world use but with the end result of choking the server and seeing what it can handle. For example the random visits of between 1-3 seconds is maybe not all that real world as the average visit is most likely a bit longer depending on the site. All in all these tests quickly strip away any glamour and expose what lies beneath … <insert random creepy movie reference>.

All of the test WordPress installs have the exact same amount of data in the forms of pictures posts etc. They run the same themes with the same settings and in most cases the same WordPress Cache plugin. The exceptions to this is if a hosts environment does not play well with a certain cache plugin, or the environment offers the opportunity to use a different cache such as Litespeeds WordPress Cache. All test WordPress sites use PHP 7 unless the provider does not yet supply it. If it is not supplied than 5.6 will be used.

 

Siege Testing

First tests are run with any WordPress caching disabled. A test of 50 concurrent users for 30 minutes is run. If there is no performance degradation the test is scaled up X 2 to 50 concurrent users. testing continues this way until site loading times start to become noticeably slower. After that we hit it even harder to see where the site becomes completely unresponsive.

The base command used is

siege -c50 -d3 -t30M -i -f /root/site.txt (50 concurrent users @1-3sec random access over 11 URLs for 30 minutes)

Each test site has it’s own txt with the same 11 URLs to use.

 

Let’s Get Started with our Best WordPress Hosting Round 1!

 

cloudways-logo

I have not previously had a chance to use Cloudways, but I see people recommending them quite often so is exciting to finally be able to give them a try!

Cloudways Environment, Resources, And Price

Plan Name: Managed WordPress Hosting (1GB Digital Ocean Droplet)

Plan Cost: $15/mo USD

Ram: 1GB

CPU: 1 Core

IO: They do not share IO limit. I found where DO staff stated they do not limit IO, but I do not believe this otherwise a few Droplets could suck up most of the nodes IO.

Webserver: Apache + Nginx

Server Side Caching: Varnish + Memcached

Mysql: Was changed from Mysql 5.5 to MariaDB 10.x for testing

PHP Memory: 256MB

PHP 7: Yes

 

Cloudways Siege First Run (No Varnish)

Varnish is disabled for this run and it showed. While the VPS handled this test the site did slow to a crawl with a load time of 20-22 seconds. But there were no failures  and availability stayed at 100%. The slowdown came because we maxed out CPU as you will see from the screens.

siege -c50 -d3 -t30M -i -f /root/site.txt (50 concurrent users @1-3sec random access over 11 URLs for 30 minutes)

Lifting the server siege... done.

Transactions: 4848 hits
Availability: 100.00 %
Elapsed time: 1799.26 secs
Data transferred: 39.32 MB
Response time: 16.96 secs
Transaction rate: 2.69 trans/sec
Throughput: 0.02 MB/sec
Concurrency: 45.69
Successful transactions: 4848
Failed transactions: 0
Longest transaction: 32.04
Shortest transaction: 2.39

cloudways-siege-cpu-use-no-varnish

cloudways-siege-ram-use-no-varnish

cloudways-siege-pingdom-no-varnish

cloudways-siege-gtmetrix-50c-no-varnish

So we managed to stomp CPU but still had a bit of RAM to spare. Let’s try with Varnish on 🙂

 

Cloudways Siege Run 2 (Varnish On)

As you will see here Varnish has made a massive difference. CPU spiked to a 100% at the start and than dropped to sit between 50% and 20% used roughly. The site stayed fast throughout the test. RAM spiked at the start as well and than dropped dramatically. You can see the first test is at just before 11am and the second starts just before 12 and ends shortly after.

siege -c50 -d3 -t30M -i -f /root/site.txt (50 concurrent users @1-3sec random access over below URLs for 30 minutes)

Lifting the server siege... done.

Transactions: 57582 hits
Availability: 100.00 %
Elapsed time: 1799.06 secs
Data transferred: 468.05 MB
Response time: 0.06 secs
Transaction rate: 32.01 trans/sec
Throughput: 0.26 MB/sec
Concurrency: 1.97
Successful transactions: 57582
Failed transactions: 0
Longest transaction: 19.69
Shortest transaction: 0.04

cloudways-siege-cpu-use-with-varnish

cloudways-siege-ram-use-with-varnish

cloudways-siege-pingdom-with-varnish

cloudways-siege-gtmetrix-50c-with-varnish

That is some serious performance! Now let’s see where it chokes 🙂

Cloudways WordPress Hosting started to show performance degradation at 400 Concurrent users and had a complete meltdown at 450 Concurrent users. When I say complete meltdown I mean the server itself went kaboom! Enabling W3 Total Cache which comes installed and set to use APC did not help and the server choked and imploded at the same amount of concurrent users.

Very impressive performance! I would recommend Cloudways WordPress Hosting, second only to Kickassd WordPress hosting.

 

site5-logo               

Talked to sales and it was clumsy at best. Took near a 1/2 hour to get out of them that they did not use any type of hard limiting system for resources such as CloudLinux. For Disk IO they refused to share any information on the limits they set. I am not a fan of their plans offering “Unlimited” bandwidth or disk space as I find it deceiving. But this is a performance shootout so let’s see how they do in that regard.

 

Site5 Environment, Resources, And Price

Plan Name: hostPro + Turbo

Plan Cost: $14.95/mo USD

RAM: Could not provide

CPU: Could not provide

IO: Refused to share details with me

Webserver: Apache

Server Side Caching: No

PHP 7: No

 

Site 5 First Siege Run

Our test WordPress site on Site5’s hosting choked up about 15 minutes into the test and the site became extremely slow taking anywhere from 15 to 20 seconds to load.

siege -c50 -d3 -t30M -i -f /root/site_site5.txt (50 concurrent users @1-3sec random access over 11 URLs for 30 minutes)

Results

Lifting the server siege... done.

Transactions: 17886 hits
Availability: 99.97 %
Elapsed time: 1799.35 secs
Data transferred: 725.60 MB
Response time: 3.50 secs
Transaction rate: 9.94 trans/sec
Throughput: 0.40 MB/sec
Concurrency: 34.75
Successful transactions: 17886
Failed transactions: 6
Longest transaction: 72.13
Shortest transaction: 0.25

You can see where it started choking by the bolded sections. Higher concurrency translates to poor performance, and anything less than 100% availability is unacceptable. There were 6 users who were not able to access the site at all. I tried with WP Super Cache enabled and it helped a little.

 

Site5 Siege Second Run (WP Super Cache Enabled)

The cache helped some but performance was still not good. Again with 50 Concurrent users:

Lifting the server siege... done.

Transactions: 55026 hits
Availability: 99.97 %
Elapsed time: 1799.79 secs
Data transferred: 2243.30 MB
Response time: 0.13 secs
Transaction rate: 30.57 trans/sec
Throughput: 1.25 MB/sec
Concurrency: 4.00
Successful transactions: 55026
Failed transactions: 19
Longest transaction: 6.12
Shortest transaction: 0.06

I tried just for fun going up to 75 concurrent users and this resulted in many errors such as connection refused and the test failing because of to many GET fails. I really would not recommend Site5 WordPress Hosting.

 

kickassd-logo

 

I saw and Ad for these guys on Reddit that caught my attention due to their environment and the ability to use Litespeeds WordPress Cache plugin which I have been curious about but yet to find a host that supported it. This SSD Web Hosting does not disappoint and so far has blown every other host I have tested right out of the water.

Kickassd Environment, Resources, And Price

Plan Name: Big Kicker

Plan Cost: $15/mo USD (first year)

RAM: 1GB

CPU: 1.2 Core

IO: 16MB/sec

Webserver: Litespeed

Server Side Caching: Litespeeds LScache + Zend Opcode

PHP 7: Yes

Kickassd First Run (No Litespeed Cache)

I was surprised at the results here, I expected them to be similar to the Cloudways 1GB Digital Ocean WordPress server results. But they are much better even. The Kickassd test site stayed fast for the duration of the test, in fact there was absolutely no slowdown, and we didn’t even hit the CPU limit of 120% CPU, the CPU use hovered around 73% for the entire test, and RAM only at 256MB.

Have a look at the concurrency and amount of hits compared to the other tests, it was not even close to choking like the others did.

siege -c50 -d3 -t30M -i -f /root/kickassd_site.txt (50 concurrent users @1-3sec random access over 11 URLs for 30 minutes)

Lifting the server siege... done.

Transactions: 56160 hits
Availability: 100.00 %
Elapsed time: 1799.40 secs
Data transferred: 516.41 MB
Response time: 0.10 secs
Transaction rate: 31.21 trans/sec
Throughput: 0.29 MB/sec
Concurrency: 3.21
Successful transactions: 56160
Failed transactions: 0
Longest transaction: 2.65
Shortest transaction: 0.05

kickassd-siege-cpu-and-ram-50c-users

kickassd-gtmetrix-no-cache-50c-user

kickassd-pingdom-no-cache-50c-user

 

Out of curiosity I upped concurrent users still with no cache to 80 and it handled it perfectly though I did max out the CPU at that point so I could not push it any further without turning on caching. Really awesome performance, here is the test results at 80 concurrent users:

siege -c80 -d3 -t30M -i -f /root/kickassd_site.txt (50 concurrent users @1-3sec random access over below 11 URLs for 30 minutes)

Lifting the server siege... done.

Transactions: 70610 hits
Availability: 100.00 %
Elapsed time: 1799.15 secs
Data transferred: 651.22 MB
Response time: 0.54 secs
Transaction rate: 39.25 trans/sec
Throughput: 0.36 MB/sec
Concurrency: 21.11
Successful transactions: 70610
Failed transactions: 0
Longest transaction: 2.61
Shortest transaction: 0.05

 

Now let’s see what it can do with Litespeeds Lscache active, more specifically their new WordPress caching plugin which is essentially a LsCache manager for WordPress. Unlike the other Webhosts I tested I will not start at 50 concurrent users as Kickassd handled that easily with no cache. Instead I will start at 100 concurrent users.

 

siege -c100 -d3 -t30M -i -f /root/kickassd_site.txt (50 concurrent users @1-3sec random access over below 11 URLs for 30 minutes)

Lifting the server siege... done.

Transactions: 117179 hits
Availability: 100.00 %
Elapsed time: 1799.15 secs
Data transferred: 1080.82 MB
Response time: 0.04 secs
Transaction rate: 65.13 trans/sec
Throughput: 0.60 MB/sec
Concurrency: 2.55
Successful transactions: 117179
Failed transactions: 0
Longest transaction: 5.05
Shortest transaction: 0.03

kickassd-100C-users-Litespeed-cache

Seriously, we did not even tickle it. I actually had to check the file with the site URLs in it because I thought maybe I made a mistake and was hitting another test site, but I wasn’t. So next I decided to hit it with 400 concurrent users the same amount that started the issues with the Cloudways WordPress server. Guess what again the Kickassd test site stayed fast, no difference at all and barely touched available resources. I actually had to setup another Siege VPS to push things farther. So now with 2 VPS hitting the test site for a total of 600 Concurrent users essentially the same thing. A small spike in CPU up to 70% for a few seconds than down to almost nothing.

Here is a test result from 1 siege server when hitting the test site for a combined 1000 Concurrent users:

Lifting the server siege... done.

Transactions: 233046 hits
Availability: 100.00 %
Elapsed time: 1799.34 secs
Data transferred: 2146.84 MB
Response time: 2.35 secs
Transaction rate: 129.52 trans/sec
Throughput: 1.19 MB/sec
Concurrency: 304.29
Successful transactions: 233046
Failed transactions: 0
Longest transaction: 25.08
Shortest transaction: 0.02

Normally Concurrency translates to performance such as it did with the other hosts. Once you see concurrency raise than generally you see load times increase. For some reason with Litespeed and their cache this is not true. You see Concurrency at 304 but yet the site load times stayed under a second and there were 0 failed transactions.

 

Trying to choke or even cause any type of slowdown on this Kickassd account turned out to be a war that I lost. I was setting Siege up on Digital Ocean droplets. Each 512MB Droplet was capable of hitting for 500 Concurrent users before the Droplet started seeing issues. I ended up making 6 of these war Droplets for a total of 3000 concurrent users to hit the test site with, to almost no effect. So I shortened the random access to 1 second from 1-3 and added more links for a total of 20. I still was unable to cause any type of slowdown on the test site and resource use stayed quite low. There is just a momentary spike in CPU when the War Droplets start hitting and than it drops to 5% and Ram use stays around 256MB.

I hate losing but I am tossing in the towel, needless to say the performance of this setup really makes hosting high traffic sites on shared hosting a reality as long as you properly utilize the caching that is available (Litespeeds WordPress Caching).

Would I recommend Kickassd to a friend? Absolutely, the performance is over the top for shared hosting. If that performance translates to the rest of their service such as support and uptime than this is really a Kickass Web Hosting provider.

Kickassd Siege Testing Fun Stats

kickassd-fun-testing-stats

 

 

inmotion-logo

I really almost skipped InMotion, seriously who has setup fees on shared hosting these days. I chose their WordPress Hosting Pro plan and was greeted by a $40 setup fee which is ridiculous, but maybe I’ll write about that another time. This is a performance based article so let’s see how they do in that regard.

InMotion Environment, Resources, And Price

Plan Name: Wordpress Hosting (Pro)

Plan Cost: $8.99/mo USD + A Ridiculous $40 setup fee. And after first month your payment per month mysteriously grows from from $8.99/mo to $19.99/mo

RAM: Could not provide

CPU: Could not provide

IO: Could not provide

Webserver: Apache

Server Side Caching: No

PHP 7: No

 

InMotion First Run (No Caching)

Instantly I see issues, long transaction times, and failed transactions. Right from the start it does not look good for InMotion and the test fails, here are the results:

siege aborted due to excessive socket failure; you
can change the failure threshold in $HOME/.siegerc

Transactions: 770 hits
Availability: 42.47 %
Elapsed time: 261.40 secs
Data transferred: 23.17 MB
Response time: 13.35 secs
Transaction rate: 2.95 trans/sec
Throughput: 0.09 MB/sec
Concurrency: 39.33
Successful transactions: 770
Failed transactions: 1043
Longest transaction: 14.56
Shortest transaction: 0.15

 

That is the worst we have seen so far, and light years behind the top 2. I cut Concurrent in 1/2 to 25 just to see and it was almost as bad. Here are the load times less than 10 minutes into the 25 Concurrent user test:

inmotion-siege-gtmetrix-25c

inmotion-siege-pingdom-25c

 

Quite honestly that is more than enough for me, installing a WordPress cache is not going to help things out. My InMotion experience has been bad from the start and I am happy to be finished with it. I most definitely would not recommend InMotion to a friend.

Note: 1 good point. The cancellation and refund process was fast and easy.

 

Closing Thoughts

The fuel behind this test  and article is the overwhelming amount of people that are recommending to those looking to change hosting a VPS or cloud server. To start nobody in this day and age should be using a VPS. Technology has surpassed that and a VPS is simply a lazy mans cloud server, and lazy will get you in trouble. Also in many cases a Cloud Server is not needed and if you are not a seasoned systems admin you should not even consider managing your own server. There are exceptions like Cloudways where you get a VPS/ Cloud that is semi-managed, and that is not a bad choice at all.

But there are even easier options such as Kickassd that offer even more performance and ease of use. Considering I never heard of Kickassd until recently I am sure there are more out there that offer outstanding shared hosting and give an alternative to being forced into another expensive and unneeded solution. I will continue testing Webhosts and writing articles on them so stay tuned. Eventually maybe even a top 5 or top 10 list performance wise, no affiliate / referral links guaranteed.

 

Stay Tuned!

 

2 thoughts on “Best WordPress Hosting Round 1”

Leave a Reply