0

I know many questions have been asked on this subject, but I didn't find an answer to help me.

I'm trying to have Apache httpd answer 200 concurrent connections. I'm testing with jMeter, fetching a small static text file (about 100 bytes), using prefork; MaxClient & ServerLimit at 500, neither memory or CPU are limiting (both are under 50%), bandwidth is 1Gbps.

  • if I start only one connection, the response time is about 7ms
  • if I start a few concurrent connections (let's say 2 or 3), the response time goes to 70ms
  • if I start a little more (let's say 20), the reponse time is over 2s even for the first connection

Using keep-alive doesn't change much. Restarting httpd doesn't help neither.

Am I doing something wrong? how can I fix that?

Thanks in advance

greg

2
  • How many httpd processes are running in each of your three cases? Enable server-status (httpd.apache.org/docs/2.2/mod/mod_status.html) and examine the output as your load increases. If you haven't already, worth looking at is the latency, you can enable that in JMeter's Listeners (e.g. Graph Results) by clicking the Configure button.
    – KM.
    May 15, 2014 at 14:17
  • Thanks for your answer. I was indeed watching apache status (not easy since it's a http request and therefore was timeout'ing). That lead me to the solution writen below.
    – greg
    May 16, 2014 at 0:16

1 Answer 1

0

To solve the problem I had to permanently increase the number of running processes. Instead of:

StartServers          5
MinSpareServers       5
MaxSpareServers      10

I changed to:

StartServers        300
MinSpareServers     300
MaxSpareServers     300

Now the response times are acceptable. It seems creating/killing processus is very heavy even for fast computers...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .