Re: High load apache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx> wrote:
On 09/10/2010 06:09 PM, Paras pradhan wrote:

On Fri, Sep 10, 2010 at 4:58 PM, John List <johnlist@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxx
 "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx







[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux