On Sep 6, 2006, at 6:01 PM, Frank Wiles wrote:
It didn't disappear, and it isn't "shared" like the type of sharing
we talk about with mod_perl/Apache. It's not CoW sharing.
I know.
The shared memory you're talking about here is held by the
postmaster
daemon and is used to store frequently requested data to be used by
the forked children via SysV IPC.
Yes. I know that. pg_stop is the stopping of the postmaster daemon
-- not clients ( apache stop will kill the pids of the clients ).
And yeah, PostgreSQL cleans up it's shared memory when it exits
like
it should.
No, its not. thats the point of my post.
On my system, shared memory that was allocated to postgres is not
being returned. postgres's exit releases the lock on memory-- ipcs
shows nothing allocated. but the kernel never gains any of that
shared mem. i only see about the size of the resident memory of the
postmaster instance and the clients returned.
I'm inclined to think this 'leak' is in postgres and not in Apache/MP/
DBI, because it happens to pg via the command line
the long running process where i found this behavior started off at
about 850mb of free memory. earlier today my machine was down to
241mb free- a stop/wait/start of apache brought me to 317 and a
restart of pg brought me to 321. thats about 500mb vanished.
then i remembered this post, started poking around , and saw memory
disappear and never made available in proportion to the pg vsize
( the clients themselves are nothing).