Skip to content

Slowness observed creating/restoring snapshots in Postgres 17 with large DB #29

Description

@ash-plunkett-alliance

G'day,
This might not be the right spot but I'm hoping you'll either have an idea, or be able to point me in the right direction.

I use DSLR pretty extensively on a lot of my projects and it works like a charm. Super quick to take & restore snapshots while making the whole thing easy to manage.
I have one particular DB which is significantly larger than the rest, some 130GB+.

I have two versions of postgres running on my local machine, 13 & 17. (95% of my time is on v17 projects)

Loading the dump of the 130GB+ DB from the production server (which is running postgres 12 currently) to my local machine via pg_restore takes some 80-95 minutes, which is fine. It's around the same time regardless of if I load it into v13 or v17, which is good.

Taking or restoring a snapshot of the DB via DSLR in v13 takes ~80 seconds, which is fantastic and as expected for a DB of this size.

However, taking or restoring a snapshot of the same DB via DSLR in v17 takes ~36 minutes, which is less than great.
(if I trim some old data out of the DB and get it down to ~82GB, it reduces the snapshot/restore time to ~24 minutes)

I've had a squiz through what DSLR's actually doing under the hood and there isn't anything I could spy here that would be the culprit so it'll be something at the postgres level - but I can't find any clue on exactly what it might be. I haven't noticed this at all in any of my other projects (all others are running v17).

Do you know how I could dig into this deeper and figure out what's going on?
The config of my local postgres installations are off-the-shelf (nothing custom tweaked in either installation).

At the end of the day it's still significantly faster than pg_dump/pg_restore, but seeing the huge difference of ~80 seconds in v13 compared to 24-36 minutes in v17 with the same database dump has me a bit alarmed. (if it was slower in v13 but faster in v17 then I wouldn't mind 😁)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions