Hi crazyweber,
There are a zillion factors that influence performance, which makes general statements hard, cause they're only right 90% of the time. Generally I approach performance like this: set a goal, achieve it, move onto my next problem.
Specific questions:
- how many requests/sec does you site need?
- how many are you currently achieving?
- have you done similar sites before? was there their performance similar? if not, what sort of throughput do other people normally see with this application?
On performance testing:
- you're doing it! Which means you're already doing better than 90% of web site owners out there :-)
- there are many resource bottlenecks possible. In testing I try to get the CPU maxed out. If I can't max the CPU out I figure out why (disk, ram, bandwidth, other..). Then, assuming throwing more hardware at the problem is not more cost-effective, I start analyzing the CPU usage. Which process(es) are consuming all the CPU. Does it make sense that they are? Could they be split onto seperate machines? (e.g. DB). Eventually one process will come into my sites (pun intended :-)).
- Assuming you find php-cgi.exe is eating all your CPU: Start looking into PHP performance tricks. Here are 16 PHP performance talks by some smart folks: http://talks.php.net/index.php/Performance
Finally I can't avoid a plug :-) : IIS 7 contains a new module, called "output caching", for certain type of anonymous, dynamically generated, effectively static pages, it gives a massive performance boost. (I get thousands of requests/sec on my ancient laptop)
Cheerz,
Rick