Are you using the RH / SuSE versions of mp/apache and postgres ? Or did you compile your own?

I my experience, on those systems its best to compile your own. The packages are often way out of date and have issues that have been solved.

I've found that running Postgres and MP on the same machine is annoying at best. Modperl wants tons of memory. Postgres needs tons of memory for the main process, and quite a bit for each connection. Since each apache child gets its own DB connection, you end up having to tweak the semaphores and kernel params to get both working right. ( i think by default Postgres on most systems can only handle 40 connections-- if nothing else is running. )

That said, I'd be doubly sure of a few things:

a- chances are you had to tweak some kernel params to get both apps running right. could that be a cause. b- did you build from source or packages? source good. packages bad ( they almost always have an exploit or leak that has been found and fixed ) c- did you check to see if your code has anything that creates known memory leaks in perl itself ? we all love perl, its just had some issues in the past.

also,
        d-      are you running sizelimit or maxrequests to manage the growth?
250m can easily grow to 500m without an actual leak, just because of the way memory is managed by mp. maybe the growth is normal, and then you're leaking from all the swapping thats going on.

personally, i've found ps and top to give me spotty numbers in regards to mod_perl. my production box ( FreeBSD ) seems to not show any sort of shared memory, even though the memory is shared. i can tell, because there's not much swapping going on, and 30 processes that claim to use 25.3% of my system memory each. numbers on my osx box are skewed in other manners.





Reply via email to