15.1. Server Size as a Function of Compiled-in Features
You might wonder if it's better to compile in only
the required modules and mod_perl hooks, or if it
doesn't really matter. To answer this question,
let's first make a few compilations and compare the
results.
We'll build mod_perl starting with:
panic% perl Makefile.PL APACHE_SRC=../apache_1.3.x/src \
DO_HTTPD=1 USE_APACI=1
and followed by one of these option groups, in turn:
After recompiling with the arguments of each of these groups in turn,
we can summarize the results as follows:
Build group httpd size (bytes) Difference
---------------------------------------------
Minimum 892928 + 0
Default 994316 +101388
Everything 1044432 +151504
Everything+Debug 1162100 +269172
Clearly when you strip most of the defaults, the server size is
slimmer. But the savings become insignificant, because you
don't multiply the added size by the number of child
processes if your OS supports memory sharing. The parent process is a
little bigger, but it shares these memory pages with its child
processes. Of course, not all the memory will be shared, but most of
it will.
This is just an example to show the maximum possible difference in
size. You can't actually strip everything away,
because there will be Apache modules and mod_perl options that you
won't be able to work without. But as a good system
administrator's rule says: "Run the
absolute minimum of the applications. If you don't
know or need something, disable it." Following this
rule to decide on the required Apache components and disabling the
unneeded default components makes you a better Apache administrator.