Re: postgres memory management

From: Alexander Jerusalem <ajeru(at)gmx(dot)net>
To: Peter Mount <peter(at)retep(dot)org(dot)uk>, pgsql-general(at)postgresql(dot)org
Cc: pgsql-hackers(at)postgresql(dot)org, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: postgres memory management
Date: 2001-01-22 23:53:54
Message-ID: 4.3.2.7.0.20010123003401.00b77520@pop.gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers pgsql-jdbc

At 21:40 22.01.01, Peter Mount wrote:
>At 13:18 21/01/01 +0100, Alexander Jerusalem wrote:
>>Hi all,
>>
>>I'm experiencing some strange behaviour with postgresql 7.0.3 on Red Hat
>>Linux 7. I'm sending lots of insert statements to the postgresql server
>>>from another machine via JDBC. During that process postgresql continues to
>>take up more and more memory and seemingly never returns it to the
>>system. Oddly if I watch the postmaster and it's sub processes in ktop, I
>>can't see which process takes up this memory. ktop shows that the
>>postgresql related processes have a constant memory usage but the overall
>>memory usage always increases as long as I continue to send insert statements.
>>
>>When the database connection is closed, no memory is reclaimed, the
>>overall memory usage stays the same. And when I close down all postgresql
>>processes including postmaster, it's the same.
>>I'm rather new to Linux and postgresql so I'm not sure if I should call
>>this a memory leak :-)
>>Has anybody experienced a similar thing?
>
>I'm not sure myself. You can rule out JDBC (or Java) here as you say you
>are connecting from another machine.
>
>When your JDBC app closes, does it call the connection's close() method?
>Does any messages like "Unexpected EOF from client" appear on the server side?
>
>The only other thing that comes to mine is possibly something weird is
>happening with IPC. After you closed down postgres, does ipcclean free up
>any memory?
>
>I'm cc'in the hackers list and the new jdbc list.
>
>Peter

Thanks for your answer!

Yes I'm calling Connection.close(). I don't get any error messages but
maybe I just don't see them because postgresql is started automatically at
run level 3. I'm not sure where the output goes. (pg_log contains only
garbage or maybe it's a binary file) I tried ipcclean right now and it
doesn't free the memory but it gives me some messages that I cannot interpret:

Shared memory 0 ... skipped. Process still exists (pid ).
Shared memory 1 ... skipped. Process still exists (pid ).
Shared memory 2 ... skipped. Process still exists (pid ).
Shared memory 3 ... skipped. Process still exists (pid ).
Semaphore 0 ... resource(s) deleted
Semaphore 1 ... resource(s) deleted

Oddly, when I try to run ipcclean a second time, it says: ipcclean: You
still have a postmaster running. Which is not the case as ps -e proves.

Alexander Jerusalem
ajeru(at)gmx(dot)net
vknn

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Mitch Vincent 2001-01-22 23:56:24 PL/pgSQL Question
Previous Message Tim Barnard 2001-01-22 23:14:36 Data entry screen building utilities

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Jerusalem 2001-01-22 23:58:49 Re: [HACKERS] Re: postgres memory management
Previous Message Tom Lane 2001-01-22 23:33:22 Re: drop table and pg_proc

Browse pgsql-jdbc by date

  From Date Subject
Next Message Alexander Jerusalem 2001-01-22 23:58:49 Re: [HACKERS] Re: postgres memory management
Previous Message Peter Mount 2001-01-22 22:04:07 Re: JDBC2 question -- can't find files needed