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.
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.
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.
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.
|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|
Geekbench Multi-Core + UnixBench Scores
PHP + MySQL Performance
Measurable Value per Dollar
Megabytes of RAM per Dollar
Geekbench Points per Dollar
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!