On Tue, 23 Apr 2002, Aaron Bannert wrote:

> This patch corrects some problems in the ability of AB to handle
> concurrent processing by:
>  - enabling nonblocking connect()s.
>  - preventing APR from performing blocking reads, allowing AB to
>    multiplex over its own set of descriptors.
> ** If you saw poor concurrent performance with the worker MPM while
> testing with AB, please retest and submit your results.

May I just say HELL YEAH!  :)  That's awesome.  Attached are some runs I
just did before and after applying your patch to ab (nothing else
changed... I didn't even stop and restart httpd between runs).  Included
are a few dumps from mod_status during each ab run.

Summary for a concurrency level of 100, default worker params:

              Without patch     With patch
      RPS         60.69           1372.75
     KBPS        103.72           2345.90

In other words:

++1 on the patch =-)

--Cliff
---------------------------------------------------------------

   With original ab:

----------------------



_________________________.......................................

CCCCCCCCCCCCCCCCCCCCCCCCC.......................................

_____W___________________.......................................

................................................................

_________________________.......................................





CCCCCCCCCCCCCCCCCCCCCCCCC.......................................

_________________________.......................................

___CCC_C__C_C___CCC_____C.......................................

W________________________.......................................

_________________________.......................................





................................................................

_______________________W_.......................................

CCCCCCCCCCCCCCCCCCCCCCCCC.......................................

_________________________.......................................

................................................................



Server Hostname:        localhost

Server Port:            80



Document Path:          /index.html.en

Document Length:        1456 bytes



Concurrency Level:      100

Time taken for tests:   164.758753 seconds

Complete requests:      10000

Failed requests:        0

Write errors:           0

Total transferred:      17500000 bytes

HTML transferred:       14560000 bytes

Requests per second:    60.69 [#/sec] (mean)

Time per request:       1.648 [ms] (mean)

Time per request:       0.016 [ms] (mean, across all concurrent requests)

Transfer rate:          103.72 [Kbytes/sec] received



Connection Times (ms)

            min  mean[+/-sd] median   max

Connect:    0     0    0.3 0 19

Processing: 8  1646 2325.9 69 8041

Waiting:    1   904 1389.4 37 6028

Total:      8  1646 2325.9 69 8041



Percentage of the requests served within a certain time (ms)

  50%     69

  66%   2017

  75%   4013

  80%   4029

  90%   5990

  95%   6006

  98%   6019

  99%   7940

 100%   8041 (longest request)



---------------------------------------------------------------

   With patched ab:

----------------------



CC____C_CC_____C_C____CC_.......................................

______CCCC_C__C__CCW___C_.......................................

_C___C____C_CCCC_C___C___.......................................

CCCCCCCCCCC.....................................................

CCCCCCCCCCC.....................................................

C__CCC__C____C_C___C_C___.......................................





_C___CC_CCCCC_CC_CCCCCC_C.......................................

_CC_CC_CCC_CC_CCC_CC_CC_C.......................................

__CCCC_CCC_C_C__C_C_CCCCC.......................................

CCC____CCCC__CCCCCCCC__CC.......................................

CCC_CCCCCC_CC__C__C_CCCC_.......................................

CCC___CCC___CCC_CCC_CCCWC.......................................



Server Hostname:        localhost

Server Port:            80



Document Path:          /index.html.en

Document Length:        1456 bytes



Concurrency Level:      100

Time taken for tests:   7.284637 seconds

Complete requests:      10000

Failed requests:        0

Write errors:           0

Total transferred:      17500000 bytes

HTML transferred:       14560000 bytes

Requests per second:    1372.75 [#/sec] (mean)

Time per request:       0.073 [ms] (mean)

Time per request:       0.001 [ms] (mean, across all concurrent requests)

Transfer rate:          2345.90 [Kbytes/sec] received



Connection Times (ms)

            min  mean[+/-sd] median   max

Connect:    0     0    0.1 0 13

Processing: 8    71   86.2 72 1433

Waiting:    1    39   86.2 34 1420

Total:      8    71   86.2 72 1433



Percentage of the requests served within a certain time (ms)

  50%     72

  66%     72

  75%     72

  80%     73

  90%     73

  95%     75

  98%     99

  99%    215

 100%   1433 (longest request)

Reply via email to