You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Joe Novak <jn...@mainstreamdata.com> on 2010/07/02 01:35:41 UTC

[users@httpd] Win32 Apache HTTP performance/reliability problem

I set up a jmeter test to open a socket to Apache HTTP, request a very
small file, and close the socket.  Jmeter is running on the same box as
the Apache HTTP service.  At 2 sockets/second, there is a 3% error rate.
At 5 sockets/second, the error rate increases to 8%.  Failures occur at
regular intervals.  With 2 sockets/second failure is about every 20
minutes.  With 5 sockets/second, failure is at 15 minute intervals.
 
In a separate jmeter test, I set up 1300 concurrent requests with a
delay between each run.  Failure occurred within just a few seconds.
The symptoms were much worse with this test.  Symptoms were very much
like a denial of service.  When I open a browser and manually download
the small file, the browser spins and never returns with a response.

I have tried tweaking the Windows registry and the httpd.conf file to
improve performance, but nothing seems to help.  Relevant tweaks from
httpd.conf are shown below.

ThreadLimit          3600
ThreadsPerChild      3200

I also tried the following to improve reliability, but it made no
difference.

EnableMMAP off
EnableSendfile off
Win32DisableAcceptEx

Has anyone else observed these problems?  Is there anything that can be
done to improve reliability or performance?  Thanks.

Joe


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] Win32 Apache HTTP performance/reliability problem

Posted by "William A. Rowe Jr." <wr...@rowe-clan.net>.
>> n Thu, Jul 1, 2010 at 7:35 PM, Joe Novak <jn...@mainstreamdata.com> wrote:
>>
>> ThreadLimit          3600
>> ThreadsPerChild      3200

At these values, you are hitting the boundries of how many stacks are possible
on win32 (by default).

Adding workers isn't usually the solution, you are increasing the overall contention
between requests.  You need long-lived workers to handle large content delivery,
but for straightforward 1-5 packet requests, the more threads, the worse your
observed performance becomes.

At which point, you need to wonder if one machine is adequate for the task at hand,
or if you need a load balancer and cluster of httpd machines.

Never use the same box for instrumentation or measurements, you need to be running
in the true stack (MS has never cared to replicate real-world conditions, behavior
or compatibility in it's IP loopback driver), from a machine which isn't affecting
the behavior of httpd itself due to contention.

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] Win32 Apache HTTP performance/reliability problem

Posted by Eric Covener <co...@gmail.com>.
> n Thu, Jul 1, 2010 at 7:35 PM, Joe Novak <jn...@mainstreamdata.com> wrote:
> I set up a jmeter test to open a socket to Apache HTTP, request a very
> small file, and close the socket.  Jmeter is running on the same box as
> the Apache HTTP service.  At 2 sockets/second, there is a 3% error rate.
> At 5 sockets/second, the error rate increases to 8%.  Failures occur at
> regular intervals.  With 2 sockets/second failure is about every 20
> minutes.  With 5 sockets/second, failure is at 15 minute intervals.
>
> In a separate jmeter test, I set up 1300 concurrent requests with a
> delay between each run.  Failure occurred within just a few seconds.
> The symptoms were much worse with this test.  Symptoms were very much
> like a denial of service.  When I open a browser and manually download
> the small file, the browser spins and never returns with a response.
>
> I have tried tweaking the Windows registry and the httpd.conf file to
> improve performance, but nothing seems to help.  Relevant tweaks from
> httpd.conf are shown below.
>
> ThreadLimit          3600
> ThreadsPerChild      3200
>
> I also tried the following to improve reliability, but it made no
> difference.
>
> EnableMMAP off
> EnableSendfile off
> Win32DisableAcceptEx
>
> Has anyone else observed these problems?  Is there anything that can be
> done to improve reliability or performance?  Thanks.

what version of windows, and are you sure you didn't run out of usable
client ports?

-- 
Eric Covener
covener@gmail.com

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org