After you saying what modules you had, I noticed you said EAccelerator, which has a bug (Bug tracker link here) that causes Apache to lockup in never ending loop, and bring the server to a near standstill, try disabling that and see what happens.
Update - Fixed!
William Rowe from the Apache mailing list gave me the answer, which apparently is a known thing.
XP [personal operating system] only
supports two simultaneous applications
of the TransmitFile API. Please try
the 'stock answer' of 'EnableSendfile
Off' in your config.
With that change, this issue has disappeared for me.
Original Answer
Having the same problem - using Apache 2.2.14 on Windows XP. I had to use a slightly longer (but still very basic) static HTML file to get the load problem, but it does happen.
I just enabled the localhost/server-status page using conf/extra/httpd-info.conf
(you have to enable a couple of modules in the main config file, too) and I noticed that each time the loading problem happens, the number of requests being processed goes up by 1, and the number of idle workers goes down. This is true even if the 'infinite load' is on the server status page itself - I hit refresh, and it loads successfully and instantly, with one more request being processed.
Each of the requests being processed shows a status of 'sending reply.'
I also turned on ExtendedStatus
in httpd.conf
, and now I see detailed info on each request being processed. Many have been in progress for several minutes, and many of those have transferred 0.0 kilobytes since starting.
I'm not sure what to make of this.
Detailed Instructions for server-status
You can make a server status page available at http://your.server.name/server-status
by doing the following:
1) Enable mod_status
and mod_info
(for additional info) in httpd.conf
2) Also add Include conf/extra/httpd-info.conf
, OR add the following directives (which is what httpd-info.conf
contains):
# Turn on server status
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from localhost
</Location>
# Enable more status info
ExtendedStatus On
3) Restart Apache and load the status page.
Best Answer
The server handles requests concurrently up to a limit which you set in the configuration file. Have a look at these directives: