On Aug 18, 2006, at 6:24 AM, Andreas Rieke wrote:
Hi, after booting a redhat enterprise linux 3 machine with apache 2.0.58, perl 5.8.8 and mod_perl 2.0.2, it runs well using about 300 M of 1 G physical RAM. However, the remaining RAM decreases day by day, and after 2 or 3 weeks, the machine crashes because swapping takes too much time. However, all processes together take about 250 MBytes according to ps,thus I assume that the kernel takes the rest. free tells me in fact thatmuch swap space is used an nearly no physical RAM is left.The strange thing is that all the memory is gone even after stopping allapache processes. The only thing which helps is to reboot the machine.
I'm experiencing nearly the same thing now on FreeBSD 6.0 REL Apache/2.0.58 mod_perl 2.0.2 Postgres 8.1.3 From what I can tell, this is happening: bootup: ( pg ) 861 Free apache start: ( apache , pg , 3x pg clients ) 785 Free apache stop: ( pg, 3x pg clients ) 840 Free apache start: ( apache , pg , 3x pg clients ) 774 Free apache stop: ( pg, 3x pg clients ) 829 Free apache start: ( apache , pg , 3x pg clients ) 773 Free apache stop: ( pg, 3x pg clients ) 829 FreeNote: the large drop in free memory is correlated to an equal increase in Pg's shared memory- so i'm not worried about that. Yet.
pg stop: 833 freeoh, wait. whats's that? i killed all those pg connections and no shared memory was shared? what the...
ugh... lets check with ipcs? nope, no shared mem for postgres found. that stuff just disappeared fine, let's just go on with the test free memory @ start: 773 ( apache , pg , + clients each )free memory after 10,000 requests : 697M ( apache , pg , + clients each )
difference : 76M no worries! This is attributed to: mp copy-on-write postgres slurping memory into shared but wait... stop apache (pg): 762M stop postgres () : 773 freewe now have as much free memory NOT running apache & pg as we did when we WERE running them. thats just a coincidence that the numbers are the same.
Note that this is a pretty bad test.I ***THINK*** that this is all to do with pg's shared memory. I don't have the facilities, however, to test this using MP+ mysql ( which would rule out Apache / modperl and DBI as being the culprit ), or another postgres method.
So, in regards to the original poster:a- I think you're going into swap, because your Postgres config doesn't have a limit on memory Perhaps your apache too. Check that. Load a ton of crap into Apache before the fork, and set max- requests to 500 or so. That should severely limit your memory use. b- I think only reboots work to reclaim memory, because there seems to be an oddity with Postgres releasing shared memory.
// Jonathan Vanasco| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| FindMeOn.com - The cure for Multiple Web Personality Disorder | Web Identity Management and 3D Social Networking| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| RoadSound.com - Tools For Bands, Stuff For Fans | Collaborative Online Management And Syndication Tools| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.