Backend memory growing too much

Started by Nonameover 18 years ago4 messages
#1Noname
ohp@pyrenet.fr
1 attachment(s)

Hi everyone,

I've been using sqlgrey for some time now and I'm very surprised by the
memory taken by the backends to which sqlgrey is connected.

look at process 4111 and 28108 . They roughly take twice the space the
other backend take.

Could there be a memory leak?

I don't know much about DBI/DBD but I know sqlgrey uses a lot of
prepare/prepare_cached statements.

What could cause?

shared_buffer is 400MB here.

TIA

--
Olivier PRENANT Tel: +33-5-61-50-97-00 (Work)
15, Chemin des Monges +33-5-61-50-97-01 (Fax)
31190 AUTERIVE +33-6-07-63-80-64 (GSM)
FRANCE Email: ohp@pyrenet.fr
------------------------------------------------------------------------------
Make your life a dream, make your dream a reality. (St Exupery)

Attachments:

pstext/plain; charset=US-ASCII; name=psDownload
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noname (#1)
Re: Backend memory growing too much

ohp@pyrenet.fr writes:

I don't know much about DBI/DBD but I know sqlgrey uses a lot of
prepare/prepare_cached statements.

Well, those aren't exactly free.

Possibly you could learn something about it by attaching to one of
these backends with gdb and executing

call MemoryContextStats(TopMemoryContext)

This will dump a memory map to stderr.

regards, tom lane

#3Andrew Dunstan
andrew@dunslane.net
In reply to: Noname (#1)
Re: Backend memory growing too much

ohp@pyrenet.fr wrote:

I don't know much about DBI/DBD but I know sqlgrey uses a lot of
prepare/prepare_cached statements.

You can inhibit DBD::Pg from using server side prepares if you need to,
by executing:

$dbh->{pg_server_prepare} = 0;

(as documented in the excellent DBD::Pg docs).

cheers

andrew

#4Noname
ohp@pyrenet.fr
In reply to: Andrew Dunstan (#3)
Re: Backend memory growing too much

Hi Andrew
On Tue, 17 Jul 2007, Andrew Dunstan wrote:

Date: Tue, 17 Jul 2007 11:30:43 -0400
From: Andrew Dunstan <andrew@dunslane.net>
To: ohp@pyrenet.fr
Cc: pgsql-hackers list <pgsql-hackers@postgresql.org>
Subject: Re: [HACKERS] Backend memory growing too much

ohp@pyrenet.fr wrote:

I don't know much about DBI/DBD but I know sqlgrey uses a lot of
prepare/prepare_cached statements.

You can inhibit DBD::Pg from using server side prepares if you need to,
by executing:

$dbh->{pg_server_prepare} = 0;

(as documented in the excellent DBD::Pg docs).

cheers

andrew

Thanks! That made the trick!
I assume this is because sqlgrey prepares statements (always the same) and
neither finish them.

Best regards
--
Olivier PRENANT Tel: +33-5-61-50-97-00 (Work)
15, Chemin des Monges +33-5-61-50-97-01 (Fax)
31190 AUTERIVE +33-6-07-63-80-64 (GSM)
FRANCE Email: ohp@pyrenet.fr
------------------------------------------------------------------------------
Make your life a dream, make your dream a reality. (St Exupery)