I would like to get some information on how some IPB users set up their web servers.
My server's specs are:
2.4ghz quad core xeon
4GB of ram
dual 250GB SATAs
FreeBSD 7.2 (32-bit)
My web server is setup like this:
nginx 0.8.3
PHP 5.2.9 (FastCGI using spawn-fcgi 1.6.2)
APC Cache 3.0.19
Memcached
Sphinx
My issue isn't really with IPB itself, but there are many people who run large web servers here so I hope I can get some advice.
Testing my web server, I hit it with quite a large amount of requests, and when I hit IPB it maxes the CPU out very easily. On average I will hit it with around 300 requests/second, and it will only respond to about ~260 of them, and after this the CPU completely maxes out. Now I imagine that php cannot handle all these requests, and is queueing them all up.
So I have come to the conclusion that I need more php-cgi processes. (I started with 16, moved upto 30), and I have read that some people need 200 (wow!) so I set that. But then the php processes completely lock up in a 'lockf' state.
So I am having some trouble figuring out a good way to configure my web server where it is able to handle the load. I have read that a good solution is to use apache w/ mod_php in the backend, with nginx up front. Does anyone use a setup like this?
I used to run a web server that received quite a lot of visitors, I'm talking about 6,000 unique visitors per day (that may not be large in your eyes, but it's big in mine:]), and I used similar php scripts, IPB setup exactly the same (with a much larger db), and the exact same software setup (minus memcached and sphinx) and I cannot remember the CPU Usage ever going above 10%. Now its hardware was dual quad core clovertowns with 4gb ram, and dual 15k RPM SAS drives.
So beyond all my rambling, am I configuring everything wrong, or am I expecting too much out of my setup. (Please if you can recommend me any alternatives you find good, such as using apache to serve the php