Hacker News new | ask | show | jobs
by Bishonen88 22 days ago
> ...That is the realistic "install Postgres and go" baseline. RDS ran on its default parameter group, which AWS tunes for the instance size. Hostim runs its own managed tuning. In other words, the two managed options are tuned out of the box and the self-hosted default is not, and that difference is part of what you are comparing.

So... useless comparison vs Hetzner? Akin to comparing two laptops on a compile job, but leaving one in battery saver mode and then concluding that its 2x slower.

5 comments

It’s like comparing the experience of buying an iPhone at an Apple Store versus ordering one online.

At the Apple Store, an employee will take off the protective film and actually help you set it up properly (RDS).

Running a benchmark on a default, unconfigured self-hosted Postgres instance is like receiving that online iPhone order, seeing it covered in shipping film, not bothering to transfer from your last phone, and trying to use it anyway.

Concluding that self-hosted is slower based on that is like complaining the iPhone screen is unresponsive while refusing to peel off the plastic just because "that's how it came out of the box." You are expected to take the film off before you use it.

It was "what do you get for least effort and what cost" kind of test

I think it actually favors Hetzner anyway. "Tuned" AWS instance is not impressive comparing it with (still, even after price hike) cheap Hetzner box.

Yep quite useless. It's well known that postgres defaults are tuned for low resource usage, not for max performance. There are calculators like https://pgtune.leopard.in.ua/ to get a better than default config with next to no effort.
Why can’t Postgres auto-tune these values itself in 2026? Microsoft SQL Server has mostly done a good job of this since about 2005. It will set parallelism thresholds, soak up as much cache RAM and CPU as the runtime environment allows, etc. It will give RAM back when the OS is under memory pressure, and schedule worker threads based on current resources.

A DB with a privileged supervisor process could generally detect how much free RAM, CPU usage/layout, etc at startup and re-evaluate periodically while running.

I'd like to add: pgbench? Why not HammerDB?
its useful cause it gives a baseline