httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ralf S. Engelschall" <...@engelschall.com>
Subject Re: cvs commit: apache-2.0/mpm README.rse
Date Thu, 12 Aug 1999 14:05:19 GMT

In article <Pine.LNX.4.04.9908120915360.5057-100000@chosondo.raleigh.ibm.com> you wrote:
 
> Not to sound pushy or anything, but any chance you'll run the same test
> for either apache-apr or the pthread-mpm.  They are basically the same
> code, so there is really no need to run the test on both servers.  I would
> be interested to see if the static number of processes/ dynamic threads 
> is really a big win though.

When I run Apache/pthread with GNU Pth and the default config in
apache-apr/pthread/conf/httpd.conf-dist I get:

| $ ab -n 5000 -c 1 en1:8080/index.html
| This is ApacheBench, Version 1.3
| Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
| Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/
| 
| Server Software:        Apache/pthreads-dev                                
| Server Hostname:        en1
| Server Port:            8080
| 
| Document Path:          /index.html
| Document Length:        1622 bytes
| 
| Concurrency Level:      1
| Time taken for tests:   15.526 seconds
| Complete requests:      5000
| Failed requests:        0
| Total transferred:      9365000 bytes
| HTML transferred:       8110000 bytes
| Requests per second:    322.04
| Transfer rate:          603.18 kb/s received
| 
| Connnection Times (ms)
|               min   avg   max
| Connect:        0     0     4
| Processing:     0     2    14
| Total:          0     2    18

But I get similar results (around 400 req/s) with dexter, if I use lots of
processes. The reason seems to be the non-serialized accept (keep in mind that
I use plain user-space threading with both GNU Pth and FreeBSD uthread!). 

When I change Apache/pthread to run with

MinSpareServers 1
MaxSpareServers 1
MaxClients 1
ThreadsPerChild 32
MaxRequestsPerChild 0

(which is then similar to what I use with dexter) I get:

| $ ab -n 5000 -c 1 en1:8080/index.html
| This is ApacheBench, Version 1.3
| Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
| Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/
| 
| Server Software:        Apache/pthreads-dev                                
| Server Hostname:        en1
| Server Port:            8080
| 
| Document Path:          /index.html
| Document Length:        1622 bytes
| 
| Concurrency Level:      1
| Time taken for tests:   6.347 seconds
| Complete requests:      5000
| Failed requests:        0
| Total transferred:      9365000 bytes
| HTML transferred:       8110000 bytes
| Requests per second:    787.77
| Transfer rate:          1475.50 kb/s received
| 
| Connnection Times (ms)
|               min   avg   max
| Connect:        0     0    10
| Processing:     0     0     2
| Total:          0     0    12

This is still 300 req/sec slower than Apache/mpm/dexter on the same PII/400
under FreeBSD 3.1 with the same GNU Pth. So dexter's approach seem to be
faster - AT LEAST FOR MY PARTICULAR SITUATION. Under Linux or Solaris (where
threads are tried to kernel-space) the figures can be totally different.

What I'm now really interesting is how much more one could squeeze out of
Apache/mpm/dexter after I've implemented shared memory aware pthread_mutex_t's
and then the accept serialization can be enabled again....

                                       Ralf S. Engelschall
                                       rse@engelschall.com
                                       www.engelschall.com

Mime
View raw message