httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paras pradhan <pradhanpa...@gmail.com>
Subject Re: [users@httpd] High load apache
Date Mon, 13 Sep 2010 22:28:09 GMT
I got almost the same result as yours with a small test php script. But with
the login page of horde, I am getting a small number of requests processed.
I am assuming my tuned apache is fine and its the bulky horde php scripts
that are hitting me. But still looking around the solution.. I have
memcached and eaccelerator in place but not seeing improvements.


With small php script:

nagarkot:~ ppradhan$ ab -t 10 -c 30 https://domain/test.php
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking hostname (be patient)
Finished 4608 requests


Server Software:        Apache/2.2.3
Server Hostname:        hostname
Server Port:            443
SSL/TLS Protocol:       TLSv1/SSLv3,AES256-SHA,1024,256

Document Path:          /test.php
Document Length:        68 bytes

Concurrency Level:      30
Time taken for tests:   10.003 seconds
Complete requests:      4608
Failed requests:        0
Write errors:           0
Total transferred:      1107432 bytes
HTML transferred:       313480 bytes
Requests per second:    460.65 [#/sec] (mean)
Time per request:       65.125 [ms] (mean)
Time per request:       2.171 [ms] (mean, across all concurrent requests)
Transfer rate:          108.11 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        8   30  33.3     26     406
Processing:     5   35  21.4     32     386
Waiting:        5   30  20.4     27     383
Total:         20   65  40.3     59     462

Percentage of the requests served within a certain time (ms)
  50%     59
  66%     64
  75%     69
  80%     72
  90%     81
  95%     91
  98%    154
  99%    269
 100%    462 (longest request)



With horde:

--
nagarkot:~ ppradhan$ ab -t 10 -c 30 https://domain/h/imp/login.php
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking hostname (be patient)
Finished 28 requests


Server Software:        Apache/2.2.3
Server Hostname:       hostname
Server Port:            443
SSL/TLS Protocol:       TLSv1/SSLv3,AES256-SHA,1024,256

Document Path:          /h/imp/login.php
Document Length:        16808 bytes

Concurrency Level:      30
Time taken for tests:   10.057 seconds
Complete requests:      28
Failed requests:        0
Write errors:           0
Total transferred:      490644 bytes
HTML transferred:       470624 bytes
Requests per second:    2.78 [#/sec] (mean)
Time per request:       10775.575 [ms] (mean)
Time per request:       359.186 [ms] (mean, across all concurrent requests)
Transfer rate:          47.64 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        9  213 220.9    269     867
Processing:   660 3935 2707.5   3242    9787
Waiting:      659 3934 2707.5   3241    9785
Total:        926 4148 2762.9   3314   10056

Percentage of the requests served within a certain time (ms)
  50%   3314
  66%   4803
  75%   6077
  80%   6369
  90%   8963
  95%   9699
  98%  10056
  99%  10056
 100%  10056 (longest request)



Thanks!
Paras.

On Mon, Sep 13, 2010 at 1:33 PM, John List <johnlist@gulfbridge.net> wrote:

>  On 09/13/2010 12:41 PM, Paras pradhan wrote:
>
> John,
>
>  I am testing to support 300 requests / second. concurrent parameter in ab
> does test number of Established tcp session per second if I am not mistaken.
>
>  Thanks
> Paras.
>
>
> Sorry again, Paras. This time I erred in two ways: I said you were testing
> at *300* *connections* per second. Actually, your -c parameter is 100 so
> you are testing at *100* *concurrent requests* (not requests per second;
> the actual number of requests per second is probably far higher).
>
> Suggestions:
>
>    - Post your complete ab results back here
>    - You might want to run your test against a (non-encrypted) http url
>    (as well as the encrypted https url you are using) to see to see if  the
>    encryption process is a significant part of the processing time. (I'm
>    guessing it will be.)
>
>
> FWIW, I'm posting my own ab results below. I ran ab from my desktop against
> a simple login screen on a webserver running on a dual-core laptop on the
> same local network using a command of "ab -t 10 -c 30
> http://192.168.1.3/Login.html". As you can see, I was actually completing
> 573 requests per second!:
>
>  # ab -t 10 -c 30 http://192.168.1.3/Login.html
> This is ApacheBench, Version 2.3 <$Revision: 655654 $>
> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
> Licensed to The Apache Software Foundation, http://www.apache.org/
>
> Benchmarking 192.168.1.3 (be patient)
> Completed 5000 requests
> Finished 5734 requests
>
>
> Server Software:        Apache/2.2.12
> Server Hostname:        192.168.1.3
> Server Port:            80
>
> Document Path:          /Login.html
> Document Length:        2409 bytes
>
> Concurrency Level:      30
> Time taken for tests:   10.002 seconds
> Complete requests:      5734
> Failed requests:        0
> Write errors:           0
> Total transferred:      16439378 bytes
> HTML transferred:       13813206 bytes
> Requests per second:    573.30 [#/sec] (mean)
> Time per request:       52.328 [ms] (mean)
> Time per request:       1.744 [ms] (mean, across all concurrent requests)
> Transfer rate:          1605.14 [Kbytes/sec] received
>
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    0   0.4      0       7
> Processing:     4   50  68.6     41    1918
> Waiting:        3   49  68.4     41    1918
> Total:          4   50  68.6     42    1919
>
> Percentage of the requests served within a certain time (ms)
>   50%     42
>   66%     46
>   75%     50
>   80%     53
>   90%     81
>   95%    120
>   98%    180
>   99%    282
>  100%   1919 (longest request)
> #
>
>  I hope this helps. (And thanks for introducing me to ab!)
>
> John
>
>
>  On Fri, Sep 10, 2010 at 5:34 PM, John List <johnlist@gulfbridge.net>wrote:
>
>>  On 09/10/2010 06:09 PM, Paras pradhan wrote:
>>
>>
>> On Fri, Sep 10, 2010 at 4:58 PM, John List <johnlist@gulfbridge.net>wrote:
>>
>>> Which processes are using the processors the most? (I suspect your imap
>>> server might be more responsible than apache.)
>>>
>>> John Hicks
>>>
>>>   True . But I am only hitting the login.php page from ab to benchmark.
>>
>>  Thanks
>> Paras.
>>
>>
>>  (Pardon me for not reading your op more carefully.)
>>
>> I am not familiar with ab, but after a quick read, I have one observation:
>>
>> You say you are building a system to support 200+ concurrent users on
>> horde. I assume that means 200 users concurrently running horde and
>> therefore checking their inbox every minute or so. That would be about *3.3
>> requests per second*.
>>
>> It looks to me like your ab test is testing at *300.0 connections* *per
>> second*.
>>
>> In other words, perhaps you needn't be too concerned about sluggish
>> performance from the ab test.
>>
>> John Hicks
>>
>>
>>
>>
>>>
>>> On 09/08/2010 03:42 PM, Paras pradhan wrote:
>>>
>>>> Hi,
>>>>
>>>> Looking for recommendations.
>>>> I need to serve 100-200+ concurrent users to provide php based webmail
>>>> client (horde). I have setup memcached and php-fastcgid for this purpose.
>>>> The server has four 2.2G AMD optereon cores with 8GB of memory. I am doing
>>>> stress test using ab as: ab -t 36000 -c 100 https://url/h/imp/login.php.
>>>> What I have noticed if the number of concurrent users are more than around
>>>> 25, I get the sluggish performance and I can see linux load rising high to
>>>> 25 to 30 and all the cpu cores are approximately 75% used.
>>>>
>>>> This is what I have in config files:
>>>>
>>>> mpm worker:
>>>> --
>>>> <IfModule worker.c>
>>>> StartServers         15
>>>> MaxClients         960
>>>> MinSpareThreads     75
>>>> MaxSpareThreads     150
>>>> ThreadsPerChild     64
>>>> MaxRequestsPerChild  5000
>>>> --
>>>>
>>>> memcached: 4GB
>>>>
>>>> ---
>>>>
>>>> fcgid:
>>>>
>>>> <IfModule !mod_fastcgi.c>
>>>>  AddHandler fcgid-script .fcgi
>>>>  MaxRequestsPerProcess 10000
>>>>  MaxProcessCount       100
>>>>  IPCCommTimeout        240
>>>>  IdleTimeout           240
>>>>  ProcessLifeTime 300
>>>>  BusyTimeout 300
>>>>  DefaultMaxClassProcessCount 100
>>>>  DefaultMinClassProcessCount 50
>>>>
>>>> </IfModule>
>>>> ---
>>>>
>>>> php-fcgid:
>>>>
>>>> # Number of PHP childs that will be launched. Leave undefined to let PHP
>>>> decide.
>>>> #    DefaultInitEnv PHP_FCGI_CHILDREN 4
>>>>    # Maximum requests before a process is stopped and a new one is
>>>> launched
>>>>    DefaultInitEnv PHP_FCGI_MAX_REQUESTS 10000
>>>> ----
>>>> OS: RHEL 5.5
>>>> Apache: 2.2.3
>>>> PHP: 5.1
>>>> Mysql: 5.0
>>>>
>>>>
>>>> Will appreciate for any inputs.
>>>>
>>>> Thanks!
>>>> Paras.
>>>>
>>>>
>>>
>>>   ---------------------------------------------------------------------
>>> 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
>>>
>>>
>>
>>
>
>

Mime
View raw message