On Wed, 3 Nov 2004 13:31:23 -0400 (AST), Marc G. Fournier
<scrappy@postgresql.org> wrote:
> Now, to any PHP gurus that might be out there ... FreeBSD ports recently
> went to an 'extensions' format for php ... so, you build apache, you add
> in mod_php4, and then for the various extensions you want, you have a
> /usr/local/etc/php/extensions.ini file that you enable/disable in ... when
> Apache forks off a new Child process, is it loading all of those up again,
> each time? Or, even better, does it only load up the PHP stuff when a
> pages calls for it? ie. a .html wouldn't load in the mod_php, but a .php
> would have to load it all up before it could run? Would that load time be
> the 'lag' we're seeing?
Not with turck-mmcache going. Turck loads every PHP script once,
parses and compiles it to opcode, and then waits for requests, so I
cannot see how PHP scripts could incur a significant overhead if they
were really being cached. I would suggest two things:
1) looking at apache's minimum number of processes (less forking after
a restart)
2) seeing if mmcache is really configured properly - this can be done
by copying mmcache.php from the mmcache distribution files to
somewhere in your document root, and loading it in your browser. This
will show you how many files are cached, how many hits, and how many
reloads.
I'm not a BSD guy so that is a pretty limiting factor for me helping,
but I can tell you that a dual XEON with mmcache enabled and only 1GB
of memory can serve 1.5M page views daily without strain. I inherited
a very poorly written PHP app (more like a hodgepodge of
loosely-cobbled scripts) and even with lousy design it scales to over
a million views daily without effort.
-- Mitch