Re: OOM killer while pg_restore - Mailing list pgsql-performance

From Tom Lane
Subject Re: OOM killer while pg_restore
Date
Msg-id 3305985.1646333012@sss.pgh.pa.us
Whole thread Raw
In response to Re: OOM killer while pg_restore  (Marc Rechté <marc4@rechte.fr>)
Responses Re: OOM killer while pg_restore  (Marc Rechté <marc4@rechte.fr>)
List pgsql-performance
=?UTF-8?Q?Marc_Recht=c3=a9?= <marc4@rechte.fr> writes:
> Le 03/03/2022 à 16:31, Tom Lane a écrit :
>> Does memory consumption hold steady if you drop the FK constraints?

> Actually the number of rows is 232735712.
> Accordingly the RAM consumption would be x12 x3 = 7.8 GiB.
> This is close to the 8,1g I reported earlier (actually it was closer to 
> 7.8 GB, due to GiB vs. GB confusion).

> So there is no memory leak.

> It took 16 hours on my box to reach that RAM consumption, and then the 
> COPY failed when checking the first FK (as the referenced table was empty).

I'm guessing it was swapping like mad :-(

We've long recommended dropping FK constraints during bulk data loads,
and then re-establishing them later.  That's a lot cheaper than retail
validity checks, even without the memory-consumption angle.  Ideally
that sort of behavior would be automated, but nobody's gotten that
done yet.  (pg_restore does do it like that during a full restore,
but not for a data-only restore, so I guess you were doing the latter.)

            regards, tom lane



pgsql-performance by date:

Previous
From: Marc Rechté
Date:
Subject: Re: OOM killer while pg_restore
Next
From: aditya desai
Date:
Subject: Any way to speed up INSERT INTO