httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Issac Goldstand <mar...@beamartyr.net>
Subject [users@httpd] [OT] Solaris + Apache 2.2 / PHP 5 cluster config help
Date Sun, 18 May 2008 12:05:02 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.

  Issac



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message