There is definitely something wrong with your install; you should be getting much better performance with this hardware.
Try having postgres do an explicit vacuum. If you’re running the all-in-one container install:
# docker exec -it -u postgres app psql discourse
psql (13.1 (Debian 13.1-1.pgdg100+1))
Type "help" for help.
discourse=# VACUUM ANALYZE;
VACUUM
How many unicorn workers do you have set in your app.yml?
You can ask Discourse to set additional performance headers in responses with the following in your env
section:
DISCOURSE_ENABLE_PERFORMANCE_HTTP_HEADERS: true
While you’re at it, you can enable miniprofiler by following this post.