Thread

  1. Backend memory growing too much

    ohp@pyrenet.fr — 2007-07-17T13:19:29Z

    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)
  2. Re: Backend memory growing too much

    Tom Lane <tgl@sss.pgh.pa.us> — 2007-07-17T15:13:38Z

    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
    
    
  3. Re: Backend memory growing too much

    Andrew Dunstan <andrew@dunslane.net> — 2007-07-17T15:30:43Z

    
    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
    
    
  4. Re: Backend memory growing too much

    ohp@pyrenet.fr — 2007-07-21T07:40:31Z

    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)