httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From living liquid | Christian Meisinger <>
Subject Re: [users@httpd] [OT] Solaris + Apache 2.2 / PHP 5 cluster config help
Date Mon, 19 May 2008 15:33:16 GMT
> Hi all,
>  I know that bits and pieces of high-load configuration questions have 
> been posted to this list (users@httpd) and am CC-ing the mod_perl folks 
> (since I know there are a bunch of knowledgeable people on the subject 
> lurking there, but please post responses to users@httpd), but I'd like 
> to put a bunch of configuration questions in one neat post.  Apologies 
> if some people can think of a more appropriate place to have posted.
> The short story is that I need to design a Apache/MySQL/PHP cluster 
> (dual [redundant] firewalls + switches + dual [redundant] LBs and/or 
> frontend caching proxies (likely squid) + switches + 4-6 webservers 
> (likely running Solaris) with read-only replicating mysqls - with the 
> hopes that we can scale these up just by adding more hardware and just 
> telling the LBs + dual [redundant] mysql replication masters + shared 
> storage - hopefully a NetApp :)), and am looking for the smartest design 
> for the webservers and application layer in general.  I know plenty of 
> theory on the subject, but it's really the first time I've had to design 
> such a setup on my own.
> My thoughts were to build httpd-2.2.x-worker, and mod_fastcgi + PHP with 
> the FastCGI SAPI (to keep apache threaded, but allow for non-threadsafe 
> PHP components - since even if I could be sure we weren't using 
> non-threadsafe components in PHP, some unsuspecting developer will 
> undoubtedly screw-up down the line if I build mod_php5).  Also, do 
> people have concrete benchmarks of keeping a read-only replication mysql 
> on the webservers vs a single read/write shared mysql server?
> I also thought to buffer common DB query results (like php's sessions) 
> in memcached on reads (though don't have any experience there and 
> looking for tips on how to set it up best, how to update on writes - I 
> assume update memcached + backend - and how to prune the old entries 
> from memcached ).
> I'm also looking to pre-compile the PHP scripts - preferably in shared 
> memory on each webserver - for faster execution (think 
> ModPerl::Registry), and am a bit stuck there.  I've previously used 
> eAccellerator/Turck mmcache, but have found that it doesn't seem to work 
> (for me, at least) with PHP objects and classes, and we use those 
> heavily (at the moment, anyway - if that's the only way to get 
> pre-compilation, then I may force them to stop using OO).  We actually 
> already have Zend Guard, but I've been led to understand that that's not 
> really helpful performance-wise, unless you have the full Zend Server, 
> which I'm not sure I'd want to migrate to.
> Any helpful pointers would be appreciated.

i can write you something about our server setup:
we've a single firewall + LB , 4 web, 2 MySQL and 1 mail server.
we use apache 2.0 with mod_php and eaccelerator. eaccelerator gives a
pretty good performance improvement.
we also use eaccelerator for shared memory access to cache some MySQL queries
and other 'settings' which don't change often.

Both MySQL servers are not clustered, each one is a standalone server.
one for realtime/user data, and the other for statistic/backup.
i'm try to split up tables even more to spread out load.
so maybe we will buy 2 additional MySQL servers soon.

All MySQL tables are replicated to our local office where i can backup them
without downtime of the online DB.

we are currently testing some 'content delivery network' (CDN) providers
like cavecreek, level3 and pantherexpress to outhouse images and movies.
if you have mostly static content (images, css, js, movies, whatever)
CDN is really nice.
that's why we are ok with only 4 web servers.

i also read about the Zend Platform which sounds very interesting.
i had no time to test it yet :(

maybe you got some more ideas... ? :)

The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:> for more info.
To unsubscribe, e-mail:
   "   from the digest:
For additional commands, e-mail:

View raw message