Re: pg_restore error with out of memory - Mailing list pgsql-general

From AI Rumman
Subject Re: pg_restore error with out of memory
Date
Msg-id CAGoODpfZw-UjLNyHF11S=AWEVnudiX_pLiLa2MVn36sC7=skiw@mail.gmail.com
Whole thread Raw
In response to Re: pg_restore error with out of memory  ("Kevin Grittner" <kgrittn@mail.com>)
List pgsql-general
I modified the 
shared_buffer=50 MB
and
maintenance_work_mem = 50 MB

But still getting the same error.

On Thu, Dec 13, 2012 at 7:36 PM, Kevin Grittner <kgrittn@mail.com> wrote:
AI Rumman wrote:

I am going to restore a 6 Gb database in my development machine
which is running on Centos 5.6 with memory 1 GB.

> pg_restore: out of memory
> pg_restore: finished item 8570 TABLE DATA entity
> pg_restore: [archiver] worker process failed: exit code 1

> I set postgresql.conf as -
> shared_memory = 128 MB
> maintenance_work_mem = 300 MB

> During error my OS status:
> free -m
>             total used free shared buffers cached
>         Mem: 1024  975   48      0       3    857
> -/+ buffers/cache: 114  909
>        Swap: 1027    0 1027
>
> Please let me know what could be the actual cause of the error.

You have 1024 MB total RAM.
You seem to be using 114 MB of that before starting PostgreSQL.
You have PostgreSQL configured to use 128 MB of shared buffers,
which is only part of its shared memory.
You have configured 300 MB per maintenance_work_mem allocation.
There can be several of these at one time.
You are running pg_restore, which needs to use memory to interpret
the map of the dump and dependencies among objects.

You are using more memory than you have.

If you really need to run PostgreSQL on a machine with 1GB of
memory, you need to use a configuration much closer to the default.

Don't expect performance to be the same as on a larger server.

-Kevin

pgsql-general by date:

Previous
From: Edson Richter
Date:
Subject: PgSQL 9.1: Warning - error 10061 on Windows, no error on Linux - but connection is broken
Next
From: Emi Lu
Date:
Subject: Re: JDBC to load UTF8@psql to latin1@mysql