Sorry Paras, I didn't catch it right , then the behavior is :
Database based (Performs Wrong)
Non Database based (perform good)
html files (performs good)
is this right ?
Asuming this is the case, then you should check your database server
to see if you're seeing stress signs on it.
Also, if you really want to load-test your application, then you
should consider a more complex test, using jmeter or some other
testing tool, where you can create random waits and other test
artifacts.
Regards, Pablo
On Tue, Sep 14, 2010 at 5:22 PM, Paras pradhan <pradhanparas@xxxxxxxxx> wrote:
> Just confirmed that the runtime wait is happening to all the database based
> and non database based php scripts and with plain html files it is fine.
> Ideas?
> Paras.
>
> On Tue, Sep 14, 2010 at 12:46 PM, Paras pradhan <pradhanparas@xxxxxxxxx>
> wrote:
>>
>> Yes horde is based on PHP and Mysql. But the page I am hitting with ab is
>> just the login page and no database involved.
>> Paras.
>>
>> On Tue, Sep 14, 2010 at 12:43 PM, Pablo Garcia Melga <malevo@xxxxxxxxx>
>> wrote:
>>>
>>> I'm not familiar with Horde, does it run against a database server ?,
>>> based on the information you provided, there's seems to be something
>>> else preventing the apache to serve the requests on time.
>>>
>>>
>>> On Tue, Sep 14, 2010 at 2:19 PM, Paras pradhan <pradhanparas@xxxxxxxxx>
>>> wrote:
>>> > Pablo,
>>> > Here the o/p:
>>> > command: ab -t 60 -c 100 https://domain/h/imp/login.php
>>> >
>>> > vmstat:
>>> > [root@wmail /]# vmstat -S M 2 20
>>> > procs -----------memory---------- ---swap-- -----io---- --system--
>>> > -----cpu------
>>> > r b swpd free buff cache si so bi bo in cs us sy
>>> > id
>>> > wa st
>>> > 40 0 0 7305 288 2259 0 0 0 3 14 11 2 1
>>> > 97
>>> > 0 0
>>> > 7 0 0 7301 288 2259 0 0 0 0 1785 15462 39
>>> > 15 46
>>> > 0 0
>>> > 47 0 0 7296 288 2259 0 0 0 0 1720 15032 40
>>> > 17 43
>>> > 0 0
>>> > 25 0 0 7297 288 2260 0 0 0 62 1656 15157 40
>>> > 15 45
>>> > 0 0
>>> > 7 0 0 7296 288 2260 0 0 0 0 1866 15701 40
>>> > 17 44
>>> > 0 0
>>> > 51 1 0 7293 288 2260 0 0 0 42 1862 16083 37
>>> > 14 44
>>> > 4 0
>>> > 1 0 0 7295 288 2260 0 0 0 12 1807 15293 42
>>> > 15 42
>>> > 0 0
>>> > 51 0 0 7298 288 2260 0 0 0 0 1797 16015 36
>>> > 14 50
>>> > 0 0
>>> > 14 1 0 7296 288 2260 0 0 0 54 1782 15001 42
>>> > 15 41
>>> > 2 0
>>> > 36 0 0 7293 288 2260 0 0 0 220 1728 14567 43
>>> > 16 37
>>> > 3 0
>>> > 17 0 0 7292 288 2260 0 0 0 42 1726 15443 40
>>> > 16 44
>>> > 0 0
>>> > 11 0 0 7296 288 2260 0 0 0 10 1844 15618 39
>>> > 14 46
>>> > 0 0
>>> > 9 0 0 7290 288 2260 0 0 0 0 1617 14694 41
>>> > 15 44
>>> > 0 0
>>> > 4 0 0 7291 288 2260 0 0 0 44 1632 14668 42
>>> > 15 43
>>> > 0 0
>>> > 7 0 0 7287 288 2260 0 0 0 16 1657 14941 38
>>> > 17 45
>>> > 0 0
>>> > 14 1 0 7287 288 2260 0 0 0 40 1751 15042 39
>>> > 17 41
>>> > 3 0
>>> > 43 0 0 7290 288 2260 0 0 0 12 1787 15635 38
>>> > 18 44
>>> > 0 0
>>> > 1 0 0 7288 288 2260 0 0 0 0 1675 14830 41
>>> > 17 42
>>> > 0 0
>>> > 44 0 0 7290 288 2260 0 0 0 44 1762 15691 33
>>> > 16 51
>>> > 0 0
>>> > 39 0 0 7288 288 2260 0 0 0 10 1666 14491 41
>>> > 18 40
>>> > 1 0
>>> >
>>> > Process waiting for run time (r) seems to be high. But don't know if it
>>> > is
>>> > normal with 100 concurrent users.
>>> > Thanks
>>> > Paras.
>>> >
>>> > On Mon, Sep 13, 2010 at 7:11 PM, Pablo Garcia Melga <malevo@xxxxxxxxx>
>>> > wrote:
>>> >>
>>> >> Paras, have you checked the OS counters ?, is this completely CPU
>>> >> bound ?
>>> >> would you post a "vmstat 2" run during the ab testing ?
>>> >>
>>> >> Regards, Pablo
>>> >>
>>> >> On Mon, Sep 13, 2010 at 7:28 PM, Paras pradhan
>>> >> <pradhanparas@xxxxxxxxx>
>>> >> wrote:
>>> >> > 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
>>> >> >>>>
>>> >> >>>
>>> >> >>>
>>> >> >>
>>> >> >>
>>> >> >
>>> >> >
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> 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
>>> >>
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>>
>>
>
>
---------------------------------------------------------------------
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
![]() |