Contabo vs. Hetzner vs. Linode vs. Digital Ocean for Discourse Hosting Under $30/mo

I have Discourse instances on 4 different shared-cloud hosting services at the moment, for testing:

(These screenshots are as of 2023-05-14)

Contabo for $27/month:

Hetzner for $27/month:

Linode for $24/month:

Digital Ocean for $24/month:

Thus far the installation experience is about the same on Linode and Hetzner. Digital Ocean’s “One Click” Discourse installer isn’t very helpful in my opinion.

I haven’t needed any support from any of the three hosts (because I get such good help and support here in the forum.)

I’m mainly interested in comparing performance.

Thus far Hetzner is really snappy compared to the Linode and Digital Ocean.

I expected that since (as you can see) I’m getting 4 times the vCPUs and RAM on Hetzner (for essentially the same price.)

I’d be interested in others’ recent experiences for Discourse with these hosts.

5 Likes

Hetzner seems incredible value. I’m not sure how they achieve it.

But sure, if you are looking to self-host AI services, for example, requiring 16GB of RAM, most other providers are far less affordable.

2 Likes

Yes @merefield testing the AI services in Discourse is one of my objectives here, and why I went looking for a lower cost 16GB RAM plan. :sunglasses:

Yes incredible pricing with Hetzner – so far I’m super impressed.

2 Likes

I’d go as far as to say I find the price difference shocking and advent of the “AI era” has woken me up to it!

3 Likes

I use contabo.com for my instances. Their dashboard is not as polished as some others and billing is monthly. Not ideal to spin up stuff on the fly, but great for long-running servers. Support is actually great, never got a meaningless support reply, always someone knowledgeable.

3 Likes

I’ll quote myself about my Hetzner experience:

(didn’t test it yet, but will do)

3 Likes

Anyone know of any datasets of dummy data / test data / and method for importing into a Discourse instance?

I’d like to compare these hosting plans with the same configurations and data.

I would ask how long they will keep those prices.

That sounds a bit similar action than one years tryout at AWS. When one has builded a system moving somewhere else is more demandind and expensive operation.

1 Like

I installed Discourse and a backup of a medium-sized forum on an ARM and x86 servers from Hetzner this weekend.
ARM: 4 vCPU, 8GB RAM
x86: 3 vCPU, 4 GB RAM.

The rebuild time is longer on the ARM, and the mini profiler returns a longer time when loading pages. Not really convinced.

I could do another test on a higher plan (with a larger forum backup, but I’m not sure it will makes a difference), with these specs:
ARM: 8 vCPU, 16 GB RAM, 15$
x86: 4 vCPU, 8 GB RAM, 17$

I won’t do that today, as it takes some time and I have stuff to do, like working :grin:

4 Likes

Thanks for doing the experiment. At the low-cost end, the Hetzner offer is a lot more hardware for a similar amount of money. So, were the differences you saw significant? Also, it would be worth doing some kind of load test: twice the RAM and 33% more cores is likely to help. For some forums, being able to support many more users without significant slowdown would be compelling.

2 Likes

I didn’t go in-depth because it would have taken too much time, but I’d be interested if someone wants to make these experiments.

As for loading the main page as a logged-in user, the difference wasn’t negligible I’d say, but it was not a proper, reliable test. Just reload the page many times and take notes of the mini-profiler timer… To me, it was often between 200 and 300ms on x86 and way more often between 300 and 400ms on ARM.

Honestly, I wouldn’t advise relying on my tests, we need more robust measurements.

3 Likes

is this what you are looking for?

2 Likes

There’s the dev:populate rake task that may be of some use:

6 Likes

If anyone wants to test and compare – at the moment I have 2 identical instances of Discourse populated only with the fake data:

[Note: either or both of these sites may be intermittently down as I use them at the moment for learning and testing!]

Instance 1 - Hetzner Dedicated Server (location: Helsinki Finland) ($42 monthly)

https://www.hetzner.com/dedicated-rootserver/ax41-nvme

Instance 2 - Contabo Cloud VPS (location: Missouri, USA) ($27 monthly)

3 Likes

Although one could benchmark the responsiveness with casual use, I think the important differences will show up under load: there must be some multi-threaded crawling tool which can load-test a web server (in this case, a forum.) You’d need some realistically worst-case numbers of simultaneous sessions.

2 Likes

@Ed_S so true. Both of these plans specs are extreme overkill for learning and testing sites.

I’m also testing the hosting services for their support materials, responsiveness, and user interfaces.

1 Like

So I stayed with the Hetzner server and dropped Contabo for the higher RAM value and larger disk. I did notice a little more speed with EPYC (on the Contabo config) vs RYZEN (on the Hetzner config).

My question to the server geeks in here is what should be optimal settings in my app.yml (or other places) while I’m running 10 Discourse instances on the Hetzner server, all of which get no traffic? (I only use all of them only for development and testing at this point.)

Unicorn Workers?

Shared Buffers?

Anything else?

And if I want to install 10 more dev sites on the same server, would that change your settings recommendations (and if so, how?)

Thank you!!!

I’ve been with Hetzner for just over 9 years using dedicated servers and the price stays constant. There have been some increases where they unbundled the cost of IPv4 addresses but I understand the reasoning there and the change in price wasn’t huge.

I’ve stayed with them for 9 years because they do what they say on the tin and I’ve rarely had any problems.

2 Likes

@packman thanks for that info – that is reassuring. I think I got in just prior to a price increase earlier this year because my bill each month is lower than what is now listed for my plan.

There are often different products released which differ in price from what you pay. I once had two servers with identical model numbers that I was paying the same price for, but one had 64GB and the other 128GB RAM. They’d improved the spec at the same price. I guess I could have dropped the first server with less RAM but I was happy with the spec at the price when I ordered it so couldn’t really complain that I got a better deal for the second server.

Also, most (all?) servers are on 30 day contracts so if you want to drop one to get a better deal on a newer/different spec then it’s easy to do, although the server migration work will often mean you might not want to do that!