2019 VPS Provider Update

October 26, 2019 5 min read

It’s been almost one year since I embraced VPS hosting for projects and published some provider benchmarks I collected. I thought I’d share an update with a few more benchmarks and how I’m hosting things now.

Briefly

I’ve been using Laravel Forge to provision servers, with Digital Ocean or AWS for client projects and Hyper Expert + Impact VPS + VirMach for my own. I tailored a quick restic + B2 setup for versioned backups when provider snapshots aren’t available.

How I’m Hosting Projects

As much as I liked Centmin Mod for its speed, active updates and ease of use, I was still spending too much time provisioning and updating servers.

I switched to Laravel Forge and haven’t looked back.

Forge provisions quickly, uses solid defaults, and is just configurable enough in ways I like. It has a lovely feature called recipes for running scripts on any number of servers, and provisions with with big name providers as well as the smaller ones I like to use and try out.

I’ve kept with Hyper Expert, Impact VPS, and VirMach for most of my own projects because each has been inexpensive, reliable, and well-supported. I can get more CPU for less money than big-name providers, so I do. And in lieu of snapshot backups, I use my own restic+B2 setup that’s been quick to set up, rock solid and cheap. Backups are incremental and similar to Time Machine on macOS, minus the gratuitous time travel UI.

For client projects, I stick to Digital Ocean or AWS mostly for snapshot backups, built in monitoring, and ease access sharing when needed. SLAs and GDPR compliance are also a must, and the larger companies always have clear policies in place.

Field Notes

It seems like no matter the size of the host, random networking issues are a fact of life. No one host has perfect uptime or performance, so I’ve also given up on that as a realistic goal.

I’ve been mostly put out by SSD Nodes. The performance value is real and their “10x” NVMe offering is eye-wateringly fast, I just can’t stomach the constant marketing hype and lackluster support. I’ve tried a few SSD Nodes servers and none has come with any perceivable catch; low (or zero) CPU steal, admirable uptime and response times, and things behave as I’d expect. It seems like once they sell you a decent VPS, everything else is as barebones as it can be. Tough to get excited about.

IonSwitch deserves honorable mention. After I posted my last article Stan reached out privately and mentioned I might want to give them a try. Stan went out of his way to answer questions, share some of what he looks at as measures of strong performance, even shared some of what goes on behind the scenes. Always prompt and thoughtful responding to tickets, good value for great service. I used an IonSwitch VPS for production for a few months until an unfortunate series of networking incidents forced me to move elsewhere. Stan’s response was unfailingly prompt, understanding and unnecessarily generous.

I learned to watch out for CPU wait and steal which can indicate slowdowns from overcrowded hardware or noisy neighbors. I added Server Hunter and NodeQuery to my toolkit and stopped myself from using NetData because that’s just too much information and I have other things I should be doing.

I learned individual core speed is critical for PHP (which makes sense), and that MySQL can scream with multiple cores.

More Benchmarks

I also benchmarked a few more servers since my roundup. I can’t help it, but I’m getting better at exercising restraint.

Note that I’ve usually benchmarked a VPS after finding a compelling deal, so in about half of these cases I was able to score a cheap VPS on sale and benchmark that. There was some hunting involved, but every deal was publicly available at some point.

The Candidates

Provider+Plan Xeon CPU RAM Storage Cost Location
IonSwitch 2GB NVMe 2×E5-2670 2 GB 25 GB NVMe $9/month Seattle, WA
IonSwitch 4GB 4×E5-2690 4 GB 50 GB SSD $11.67/month Seattle, WA
Hyper Expert 2GB 2×E5-2670 2 GB 22 GB $4.99/month Seattle, WA
VirMach 1GB 1×? 1 GB 10 GB SSD $1.31/month Seattle, WA
VirMach 3GB 2×? 3 GB 40 GB SSD $4.50/month Dallas, TX
ITLDC 2GB VDS 2×? 2 GB 15 GB SSD $3.57/month Los Angeles, CA
SolvedByData 2GB 2×E3-1240 2 GB 30 GB $1.25/month Los Angeles, CA
SolvedByData 6GB 6×E3-1240 6 GB 100 GB SSD $3.75/month Los Angeles, CA
SSD Nodes ”10x” XL 4×Gold 6140 16 GB 80 GB NVMe $13.99/month Dallas, TX
BigPowerHosting 2GB 3×E5-1650 2 GB 40 GB SSD $6.40/month Los Angeles, CA
UpCloud 1GB 1×Gold 6136 1 GB 25 GB $5/month San Jose, CA
Data Packet 1GB 16×E5-2670 1 GB 123 GB $4/month Killeen, TX

Charted Specs

$/Month vCPU Cores RAM (GB) Storage (GB) IonSwitch 2GB NVMe IonSwitch 4GB Hyper Expert 2GB VirMach 1GB VirMach 3GB ITLDC 2GB VDS SolvedByData 2GB SolvedByData 6GB SSD Nodes ”10x” XL BigPowerHosting 2GB UpCloud 1GB Data Packet 1GB 0 25 50 75 100 125 150 $9/month 2 2 GB 25 GB $14/month 4 4 GB 50 GB $4.99/month 2 2 GB 22 GB $1.31/month 1 1 GB 10 GB $4.50/month 2 3 GB 40 GB $3.57/month 2 2 GB 15 GB $1.25/month 2 2 GB 30 GB $3.75/month 6 6 GB 100 GB $13.99/month 4 16 GB 80 GB $6.40/month 3 2 GB 40 GB $5/month 1 1 GB 25 GB $4/month 16 1 GB 123 GB

I should be including core speed, but I’m keeping the tables consistent for comparison.

Geekbench Multi-Core + UnixBench Scores

Geekbench Multi-Core UnixBench IonSwitch 2GB NVMe IonSwitch 4GB Hyper Expert 2GB VirMach 1GB VirMach 3GB ITLDC 2GB VDS SolvedByData 2GB SolvedByData 6GB SSD Nodes ”10x” XL BigPowerHosting 2GB UpCloud 1GB Data Packet 1GB 0 3800 7600 11400 15200 19000 22800 4903 2150.4 11288 3535.6 4948 1831.3 1516 290.5 3063 895.4 6234 1610.8 6219 1736.1 11350 3536 11917 3190.4 8972 2515.6 4025 1539.5 18858 4723.9

Higher is better.

PHP + MySQL Performance

PHP MySQL IonSwitch 2GB NVMe IonSwitch 4GB Hyper Expert 2GB VirMach 1GB VirMach 3GB ITLDC 2GB VDS SolvedByData 2GB SolvedByData 6GB SSD Nodes ”10x” XL BigPowerHosting 2GB UpCloud 1GB Data Packet 1GB 0 2 4 6 8 10 12 3.965 2.52 3.1317 1.863 3.8337 4.118 6.0867 7.604 5.0497 7.922 2.699 1.944 4.9603 2.035 2.8527 2.281 3.1573 1.64 2.806 2.364 2.6583 2.554 3.5353 1.906

Lower is better.

Storage I/O

Random Read MB/s Random Write MB/s IonSwitch 2GB NVMe IonSwitch 4GB Hyper Expert 2GB VirMach 1GB VirMach 3GB ITLDC 2GB VDS SolvedByData 2GB SolvedByData 6GB SSD Nodes ”10x” XL BigPowerHosting 2GB UpCloud 1GB Data Packet 1GB 0 250 500 750 1000 1250 1500 307.845 74.185 371.267 64.611 367.96 882.77 94.412 72.065 86.44 299.81 539.521 513.628 38.472 1022.3 48.776 1066.1 666.769 131.779 81.811 0.47768 327.19 677.4 254.85 735.39

Higher is better.

Bandwidth

IonSwitch 2GB NVMe IonSwitch 4GB Hyper Expert 2GB VirMach 1GB VirMach 3GB ITLDC 2GB VDS SolvedByData 2GB SolvedByData 6GB SSD Nodes ”10x” XL BigPowerHosting 2GB UpCloud 1GB Data Packet 1GB 0 40 80 120 160 200 240 114 MB/s 186 MB/s 95.3 MB/s 31.6 MB/s 72.9 MB/s 29.7 MB/s 12 MB/s 11.9 MB/s 149 MB/s 95.3 MB/s 90.67 MB/s 39 MB/s

Higher is better.

Measurable Value per Dollar

Megabytes of RAM per Dollar

IonSwitch 2GB NVMe IonSwitch 4GB Hyper Expert 2GB VirMach 1GB VirMach 3GB ITLDC 2GB VDS SolvedByData 2GB SolvedByData 6GB SSD Nodes ”10x” XL BigPowerHosting 2GB UpCloud 1GB Data Packet 1GB 0 400 800 1200 1600 2000 2400 227 MB 142 MB 410 MB 781 MB 682 MB 573 MB 1638 MB 1638 MB 1171 MB 320 MB 204 MB 256 MB

Higher is better.

Geekbench Points per Dollar

IonSwitch 2GB NVMe IonSwitch 4GB Hyper Expert 2GB VirMach 1GB VirMach 3GB ITLDC 2GB VDS SolvedByData 2GB SolvedByData 6GB SSD Nodes ”10x” XL BigPowerHosting 2GB UpCloud 1GB Data Packet 1GB 0 1000 2000 3000 4000 5000 6000 544 806 991 1157 680 1746 4975 3026 801 1401 805 4714

Higher is better.

Closing Thoughts

Nothing profound, just some random notes:

Thanks for reading, and consider leaving a comment or sending me a message somewhere if you have questions, suggestions or objections!

Non-Affiliate Links

No trickery:

* * *

Updated 10/27/19 am 12:44am