[nycbug-talk] apache on freebsd
Jonathan Vanasco
nycbug-list at 2xlp.com
Wed Aug 23 14:41:44 EDT 2006
On Aug 23, 2006, at 1:48 PM, Peter Wright wrote:
>> OSX
>> -D APR_USE_SYSVSEM_SERIALIZE
>> -D APR_USE_PTHREAD_SERIALIZE
> uessing here, but the SYSVSEM and PTHREAD options could cause a
> disparity
> between memory usuage....this is the output from apachectl -V correct?
> you are using the prefork model correct (sorry can't remember).
prefork, yes
-V, yes ( httpd -V , actually )
according to the docs, the 2 APR options only have to do with binding
to the sockets. i could be wrong. but i haven't foudn anything
that would result in a memory difference like that.
>>
>> on OSX, immediately after an httpd startup, Apache spawns
>> 1 parent server 80552 30796
>> 1 child server 76560 2960
>>
>> freeBSD spawns
>> 1 parent 55148 51736
>> 1 child 55412 51956
>>
>> After 1 request,
>> OSX child is + 14mb resident
>> FreeBSD child is + 120k resident
>
> hmm...according to your results httpd on FreeBSD is only taking 120k
> resident, while OSX is using 14megs resident. the httpd is not
> taking any
> requests either during these samples correct?
no. the numbers above are vsize / resident after startup
the +120k / +14 mb are the resident sizes after one request
ie:
osx 76560 16960
freebsd 55412 52070
memory in mod_perl grows like crazy because of the way variables are
allocated.
children tend to double in size within 500 requests-- at which time
they're killed off my MaxRequestsPerChild and a new server with the
parent's memory imprint is spawned
i've been going crazy trying to tame mp-- most developers just toss
memory at the server and don't care as its 'faster than developer
time' -- what they fail to remember, is that time is neither created
nor destroyed. that approach just shifts work onto whomever
maintains the box.
> hmm...wierd. never seen the leak restarting apache via rc.d, it
> shouldn't
> as it kills all httpd process the goes through the start function. so
> that may be a bug.
i don't use rc.d-- i just use a custom apachectl script (which might
be similar to rc.d ). i have 4 apaches running on my system (same
binary, different configurations). one is handled by the rc.d and
system. the rest have their own setups tailored to specific
functions, and managed independantly.
apachectl restart jut reloads the confs and kills off the children.
if you're using a mod_xxx interpreter, it'll often just double the
size of whatever it loads. its less of a bug and more of a
behavior. a hard stop / start is the only way to handle it.
More information about the talk
mailing list