We're evaluating our server configuration and considering making some
changes and I was wondering if anyone had any input.
Right now we're running on 4 servers, (mostly 32 bit Xeon processors): 1 for
Squid, 2 for Apache and 1 for MySQL. We have 4GB of RAM for each server, and
run memcached on one of the Apache servers, and run eaccelerator on both
Apache servers. We're starting to see some symptoms of less reliable service
from Apache/PHP similar to what we were experiencing before we added our 2nd
Apache server - occasional high loads on the servers that are solved by
restarting Apache. Given our traffic has increased by 50% since then, we're
thinking of adding some more hardware. We're running Squid 2.6 (no epoll
-yet), Apache 2.2, PHP 5.1.2 and Redhat ES 4 as well.
We are thinking of moving to all 64 bit servers and adding a 3rd Apache
server. For the Apache/PHP environment, is the performance of the 64 bit
processor substantially better than the 32-bit? Would we get much more
performance by adding a 2nd 64-bit processor, or would we encounter other
system bottlenecks with PHP before we would experience the benefits of the
2nd CPU? I assume mostly for Apache/PHP that this setup is mostly processor
Is there any calculation that we can do to measure how many Apache servers
we should have based on traffic? Squid is only serving on average just less
than 100 requests per second, but sometimes goes over 150. Traffic is
relatively variable from day to day, and can vary as much as 50% between
consecutive days. Squid is effective in shielding traffic from the Apache
servers - but they still occasionally get a very slow and the load on the
servers can get quite high.
Also, is there a rule of thumb for how many Apache servers each Squid can
handle before moving to multiple Squids?
As for RAM - any recommendations? It doesn't seem like we're using a lot of
the 4GB on any of our servers - so I don't think we need more than 4GB. Are
there techniques we can be using to use RAM more efficiently in addition to