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+PlanXeon CPURAMStorageCostLocation
IonSwitch 2GB NVMe2×E5-26702 GB25 GB NVMe$9/monthSeattle, WA
IonSwitch 4GB4×E5-26904 GB50 GB SSD$11.67/monthSeattle, WA
Hyper Expert 2GB2×E5-26702 GB22 GB$4.99/monthSeattle, WA
VirMach 1GB1×?1 GB10 GB SSD$1.31/monthSeattle, WA
VirMach 3GB2×?3 GB40 GB SSD$4.50/monthDallas, TX
ITLDC 2GB VDS2×?2 GB15 GB SSD$3.57/monthLos Angeles, CA
SolvedByData 2GB2×E3-12402 GB30 GB$1.25/monthLos Angeles, CA
SolvedByData 6GB6×E3-12406 GB100 GB SSD$3.75/monthLos Angeles, CA
SSD Nodes ”10x” XL4×Gold 614016 GB80 GB NVMe$13.99/monthDallas, TX
BigPowerHosting 2GB3×E5-16502 GB40 GB SSD$6.40/monthLos Angeles, CA
UpCloud 1GB1×Gold 61361 GB25 GB$5/monthSan Jose, CA
Data Packet 1GB16×E5-26701 GB123 GB$4/monthKilleen, TX

Charted Specs

$/MonthvCPU CoresRAM (GB)Storage (GB)IonSwitch 2GB NVMeIonSwitch 4GBHyper Expert 2GBVirMach 1GBVirMach 3GBITLDC 2GB VDSSolvedByData 2GBSolvedByData 6GBSSD Nodes ”10x” XLBigPowerHosting 2GBUpCloud 1GBData Packet 1GB0255075100125150$9/month22 GB25 GB $14/month44 GB50 GB$4.99/month22 GB22 GB$1.31/month11 GB10 GB$4.50/month23 GB40 GB$3.57/month22 GB15 GB$1.25/month22 GB30 GB$3.75/month66 GB100 GB$13.99/month416 GB80 GB$6.40/month32 GB40 GB$5/month11 GB25 GB$4/month161 GB123 GB

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

Geekbench Multi-Core + UnixBench Scores

Geekbench Multi-CoreUnixBenchIonSwitch 2GB NVMeIonSwitch 4GBHyper Expert 2GBVirMach 1GBVirMach 3GBITLDC 2GB VDSSolvedByData 2GBSolvedByData 6GBSSD Nodes ”10x” XLBigPowerHosting 2GBUpCloud 1GBData Packet 1GB0380076001140015200190002280049032150.4112883535.649481831.31516290.53063895.462341610.862191736.1113503536119173190.489722515.640251539.5188584723.9

Higher is better.

PHP + MySQL Performance

PHPMySQLIonSwitch 2GB NVMeIonSwitch 4GBHyper Expert 2GBVirMach 1GBVirMach 3GBITLDC 2GB VDSSolvedByData 2GBSolvedByData 6GBSSD Nodes ”10x” XLBigPowerHosting 2GBUpCloud 1GBData Packet 1GB0246810123.9652.523.13171.8633.83374.1186.08677.6045.04977.9222.6991.9444.96032.0352.85272.2813.15731.642.8062.3642.65832.5543.53531.906

Lower is better.

Storage I/O

Random Read MB/sRandom Write MB/sIonSwitch 2GB NVMeIonSwitch 4GBHyper Expert 2GBVirMach 1GBVirMach 3GBITLDC 2GB VDSSolvedByData 2GBSolvedByData 6GBSSD Nodes ”10x” XLBigPowerHosting 2GBUpCloud 1GBData Packet 1GB0250500750100012501500307.84574.185371.26764.611367.96882.7794.41272.06586.44299.81539.521513.62838.4721022.348.7761066.1666.769131.77981.8110.47768327.19677.4254.85735.39

Higher is better.

Bandwidth

IonSwitch 2GB NVMeIonSwitch 4GBHyper Expert 2GBVirMach 1GBVirMach 3GBITLDC 2GB VDSSolvedByData 2GBSolvedByData 6GBSSD Nodes ”10x” XLBigPowerHosting 2GBUpCloud 1GBData Packet 1GB04080120160200240114 MB/s186 MB/s95.3 MB/s31.6 MB/s72.9 MB/s29.7 MB/s12 MB/s11.9 MB/s149 MB/s95.3 MB/s90.67 MB/s39 MB/s

Higher is better.

Measurable Value per Dollar

Megabytes of RAM per Dollar

IonSwitch 2GB NVMeIonSwitch 4GBHyper Expert 2GBVirMach 1GBVirMach 3GBITLDC 2GB VDSSolvedByData 2GBSolvedByData 6GBSSD Nodes ”10x” XLBigPowerHosting 2GBUpCloud 1GBData Packet 1GB04008001200160020002400227 MB142 MB410 MB781 MB682 MB573 MB1638 MB1638 MB1171 MB320 MB204 MB256 MB

Higher is better.

Geekbench Points per Dollar

IonSwitch 2GB NVMeIonSwitch 4GBHyper Expert 2GBVirMach 1GBVirMach 3GBITLDC 2GB VDSSolvedByData 2GBSolvedByData 6GBSSD Nodes ”10x” XLBigPowerHosting 2GBUpCloud 1GBData Packet 1GB0100020003000400050006000544806991115768017464975302680114018054714

Higher is better.

Closing Thoughts

Nothing profound, just some random notes:

  • My crazy cheap Black Friday VirMach VPS has been surprisingly stable.
  • ITLDC offered a stable, well-performing server with a control panel that was strange and uncomfortable.
  • UpCloud really did outperform Digital Ocean on an equivalent VPS, but marginally so compared to other not-big-name providers. (RamNode being one I’d gladly rely on.)
  • SolvedByData offered really strong CPU, but the outages, 100Mbps uplink and support vibe would keep me from seriously relying on them as a provider. My experience with BigPowerHosting was similar—and apparently they’re gone from the internet now.
  • Data Packet is the latest host I’ve tried and I’m convinced there’s something downright scandalous going on there, I just haven’t figured out what it is yet. That’s just too many cores for the price.

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

***
Matt Stein’s face

by Matt Stein

Full stack tinkerer, sporadic blogger and Craft CMS fan occasionally found on the devMode.fm podcast.

Updated 10/27/19 at 12:44am