[Zope] Server Sizing

Peter Sabaini sabaini@niil.at
Wed, 22 Mar 2000 13:36:17 +0100 (CET)


On Wed, 22 Mar 2000, Stephan Richter wrote:

:>i agree on apache increasing your performance when serving static
:>files (for instance images), but wouldn't url rewriting and the proxy
:>pass module of apache be an even better solution? i just switched from
:>PCGI to the Rewrite/Proxypass combo because of the additional overhead
:>of PCGI.
:
:Mmmhh, I have to have a look. Okay, I just read the the little tutorial. 
:Does it really speed things up?
:I guess SSL should not be hard using this solution. I will be thinking 
:about it.
:
:Anyone else?
:

some testing with apache benchmark:

the setup is an apache 1.3.12 sitting on port 1988.

/tstfolder/bmeth is a very simple dtml method ("i am bmeth in
/tstfolder" <dtml-call "REQUEST.set('testvar', 'hm...')">
&dtml-testvar;). 

i do 1000 requests at 50 concurrent users, keepalive-connection via
apache benchmark:

first the result of doing a proxypass to zserver on port 8080:

 ------ 

/root# /usr/local/apache/bin/ab -n 1000 -c 50 -k -v 2
http://druck.kleinezeitung.at:1988/tstfolder/bmeth
This is ApacheBench, Version 1.3c <$Revision: 1.38 $> apache-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/

Benchmarking druck.kleinezeitung.at (be patient)...INFO: POST header
==
---
GET /tstfolder/bmeth HTTP/1.0
User-Agent: ApacheBench/1.3c
Connection: Keep-Alive
Host: druck.kleinezeitung.at
Accept: */*


---
Server Software:        Zope/Zope
Server Hostname:        druck.kleinezeitung.at
Server Port:            1988

Document Path:          /tstfolder/bmeth
Document Length:        25 bytes

Concurrency Level:      50
Time taken for tests:   16.817 seconds
Complete requests:      1000
Failed requests:        0
Keep-Alive requests:    0
Total transferred:      243000 bytes
HTML transferred:       25000 bytes
Requests per second:    59.46
Transfer rate:          14.45 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0     1    38
Processing:    99   818   877
Total:         99   819   915        

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

then i modify httpd.conf to get apache to talk to zope via
PCGI / Zope.cgi (otherwise unchanged):

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

/home/Zope# /usr/local/apache/bin/ab -n 1000 -c 50 -k -v 2
http://druck.kleinezeitung.at:1988/tstfolder/bmeth
This is ApacheBench, Version 1.3c <$Revision: 1.38 $> apache-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/

Benchmarking druck.kleinezeitung.at (be patient)...INFO: POST header
==
---
GET /tstfolder/bmeth HTTP/1.0
User-Agent: ApacheBench/1.3c
Connection: Keep-Alive
Host: druck.kleinezeitung.at
Accept: */*


---
Server Software:        Apache/1.3.12
Server Hostname:        druck.kleinezeitung.at
Server Port:            1988

Document Path:          /tstfolder/bmeth
Document Length:        25 bytes

Concurrency Level:      50
Time taken for tests:   21.984 seconds
Complete requests:      1000
Failed requests:        0
Keep-Alive requests:    1000
Total transferred:      273050 bytes
HTML transferred:       25000 bytes
Requests per second:    45.49
Transfer rate:          12.42 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0    15   355
Processing:    41  1058  6039
Total:         41  1073  6394 

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


conclusion: with proxy pass i get around 30% more requests per second
and around 25% less connection time (and im not able to use keep-alive
as it seems).

please note that this is only a quick check and not scientific in any
way, and naturally the benefits will diminish when more complicated
pages are going to be served.

if there are any other test results please let me know...

peter.

-- 

_________________________________________________
peter sabaini, mailto: sabaini@niil.at
-------------------------------------------------