Apache on Windows uses a thread based model that defaults to 64 threads unless you update those values. Each thread handles 1 connection.
My WampDeveloper Pro configuration is set like this:
(C:\WampDeveloper\Config\Apache\extra\httpd-mpm.conf)
ThreadsPerChild 256
ThreadLimit 384
Then make sure that KeepAlives are set, but set low...
(C:\WampDeveloper\Config\Apache\extra\httpd-default.conf)
KeepAlive On
KeepAliveTimeout 1
Make your changes and restart Apache.
Check your "/server-status" and "/server-info" URLs (you might need to uncomment some lines in httpd.conf to enable these if you are using some other wamp package).
The first URL will show you all the connections and their states. The second one will display the loaded config values.
Then edit php.ini and set sensible output buffering values:
output_buffering = 4096
A value of "On" could potentially not send anything to the client until the end of the script is reached, and will make it seem as if your pages are taking a long time to load.
Also try:
- Using mod_php instead of CGI
- Using PHP opcode cache such as eAccelerator or APC.
- Commenting out your changes in httpd.conf for:
EnableMMAP off
EnableSendfile off
Win32DisableAcceptEx
Note that the slowdown could be due to poorly written / developed PHP code that is slow to process, or grows each Apache thread in size (downloadable files being read/passed via PHP will do that).