I switched my host provider!


DO_SSD_Power_Badge_Blue-077bf22e…and you should too!
(provided you know a thing or two about system management and online security)

I found myself in a place where the basic and plus hosting accounts were providing extreme sub-par service, with no SSL.  I had two options, move up to the $15 dollar a month (on sale) “Pro” hosting account, or jump ship.  I jumped to a $10/month Digital Ocean Droplet and I couldn’t be happier!

  • root
  • Faster performance
  • SSL for free, thanks to Let’s Encrypt
  • Free reign to monitor and tune system
  • Complete control over security policies and patching

Note, all of these things come with a varying levels of responsibility, which should not be taken lightly.  There are plenty of tutorials out there on how to harden a servers and configure web services.  If you go down this road, I highly suggest you do your research first.

While that short bit on the “why” is imporant, I really wrote this to share some performance data!  I used Apache Benchmark against my old hosting account and my new VM.  Honestly, I don’t get that many hits, so load on my own server is negligible.  In order to give both hosts a shot, I performed these tests between 12:00 am and 2 am CST.  I used the same theme and the same config options.  I’m unable to modify the my.cnf file on my shared hosting provider, so I left the defaults in place on my new host.  I did create an apache virtual host, otherwise I left the apache configs alone for similar reasons.  My site runs wordpress, and I made sure both sites were running the same plugins with the same options using the same theme.  At the time, LightWord, Akismet, Jetpack, SyntaxHighlighter Evolved, Ultimate Google Analytics.

Test #1 – 1,000 gets against the main page, single thread:

There is a slight difference in the total bytes and the filesize transferred.  I’ve identified this to be the difference between a custom footer and the standard.  It was a negligible change, and the tests took a while to complete, so I’ve left it alone.  Also, the hostname was different, because I chose to run the tests at the same time, using a sub-domain to point to the new host.

Example Command: ab  -n 1000 -e digitalocean.csv -g digitalocean_gnuplot.tsv http://do.ryanveach.com/

General Numbers:

 Host Type:  Shared  Virtual Machine  Virtual Machine
 Host Provider  Bluehost  Digital Ocean  Digital Ocean
 Monthly Cost:  $6.95  $10  $10
 Server Software  Apache  Apache/2.4.7  Apache/2.4.7
 Server Hostname:  ryanveach.com  do.ryanveach.com  do.ryanveach.com
 Server Port:  80  80  443
 SSL/TLS Protocol:  n/a  n/a  TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128
 Document Path:  /  /  /
 Document Length:  88453 bytes  84502 bytes  84502 bytes
 Concurrency Level:  1  1  1
 Time taken for tests:  1380.997 seconds  265.789 seconds  399.775 seconds
 Complete requests:  1000  1000  1000
 Failed requests:  0  0  0
 Total transferred:  88714000 bytes  84824000 bytes  84524000 bytes
 HTML transferred:  88453000 bytes  84502000 bytes  84203000 bytes
 Requests per second (mean):  0.72 [#/sec]  3.76 [#/sec]  2.50 [#/sec]
 Time per request (mean):  1380.997 [ms]  265.789 [ms]  399.775 [ms]
 Transfer rate:  62.73 [Kbytes/sec]  311.66 [Kbytes/sec]  206.47 [Kbytes/sec]

Mean Connection Times (ms):

 Host:  Shared  VM  VM
 Protocol:  http  http  https
 Connect:  38  33  104
 Processing:  1343  232  295
 Waiting:  1094  129  132
 Total:  1381  266  400

Max Connection Times (ms):

 Host: Shared VM VM
 Protocol: http http https
 Connect:  39  40  114
 Processing:  3981  472 577
 Waiting:  3516  305  309
 Total:  4019  506  681

Timeseries Graphs:

Bluehost Shared Host:

shared host timeseries

Digital Ocean VM (http):

digital ocean timeseries

Digital Ocean VM (https):

digital ocean ssl timeseries

Test #2 – 10,000 gets against the main page, 5 threads:

This test was not run against the new VM using ssl.

General Numbers:

 Host Type:  Shared  Virtual Machine
 Host Provider  Bluehost  Digital Ocean
 Monthly Cost:  $6.95  $10
 Server Software  Apache  Apache/2.4.7
 Server Hostname:  ryanveach.com  do.ryanveach.com
 Server Port:  80  80
 SSL/TLS Protocol:  n/a  n/a
 Document Path:  /  /
 Document Length:  88453 bytes  84502 bytes
 Concurrency Level:  5  5
 Time taken for tests:  5836.646 seconds  2148.119 seconds
 Complete requests:  10000  10000
 Failed requests:  0  0
 Total transferred:  887140000 bytes  874940000 bytes
 HTML transferred:  884530000 bytes  871720000 bytes
 Requests per second (mean):  1.71 [#/sec]  4.66 [#/sec]
 Time per request (mean):  2918.323 [ms]  1074.059 [ms]
 Time per request (mean,
across all concurrent requests):
 583.665 [ms]  214.812 [ms]
 Transfer rate:  148.43 [Kbytes/sec]  397.76 [Kbytes/sec]

Wow!

Needless to say, I’m sold on performance alone, and there are a multitude of management options that they offer.  I won’t go into it, because they can describe it so much better.

Digital Ocean

One comment

Leave a Reply