Re: [GENERAL] postgres memory management
От | Alexander Jerusalem |
---|---|
Тема | Re: [GENERAL] postgres memory management |
Дата | |
Msg-id | 4.3.2.7.0.20010123003401.00b77520@pop.gmx.net обсуждение исходный текст |
Ответ на | Re: [GENERAL] postgres memory management (Peter Mount <peter@retep.org.uk>) |
Список | 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@gmx.net vknn
В списке pgsql-jdbc по дате отправления: