I'm quite worried with a performance problem that I'm facing in one of our production servers. I'm working for a hosting company, so you can imagine how heterogeneous the applications runnning here are.

All started with a call of a client complaining about the speed loading a Joomla. The setup is IIS6 (Windows 2003) with PHP5 and FAST CGI wich normally works pretty well. I've tested the loading time and indeed, he was right. 7 or 8 seconds to load, when usually this can be accomplished in 2.

Seeing this results, I started to check first CPU and RAM. Everithing normal, 2GB of RAM free, 3%-8% of CPU activity. That's what I call a relaxed server ;). Unfortunately, digging a little deeper I've found the 'PhysicalDisk' counters quite high (above 10), specially the read queues.

I've used Process Explorer to see wich of those processes has the higher deltas, but everything seemed normal. As the problem is specially related to PHP pages, I've checked specific IIS counters, as Actual connections, Number of CGI requeriments and Number of ISAPI requeriments.

CGI -> 3 to 7   
ISAPI -> 5 to 9  
Connections-> 90 to 120 (wich appears at the top of the graph)  

More than a solution (I know this is hard to find), I would like to know if you have a specific methodology to face this kind of problems.


If it were Linux/Unix I could give you a huge list, but for MSWindows....?

Is the 7-8 seconds the time it takes to fetch the HTML or the complete page? There are lots of tools which will help to find this out - I use Firefox+firebug+pagespeed. This should also give you a lot of information about where the problems lie.

If the problem really is reading PHP code off the disk, then do make sure you've got plenty of memory for caching, and that the server is configured to favour services. Use APC.

Do you hold content and logs on the same disk? If so, can you split them? Ideally PHP code and data should be split too.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.