[Zope] Zope fine tuning HOW-TO / Zope Performance

Tony Rossignol tonyr@ep.newtimes.com
Mon, 17 Apr 2000 10:20:21 -0700


"J. Atwood" wrote:
> 
> Are you sure that serving images off of Apache has any effect on
> performance? I did a lot of testing on that (below) and did see any major
> difference whether Zope served up the image or Apache did (out of a Zope
> document). There was a slight increase but not enough (I felt) to deal with
> the extra hassles of not having the images in Zope.

YES.  I am sure that serving images off Apache has a big effect on
performance.  Not only does Apache serving blow the pants off zope
serving it alows some of the workload to be offloaded to a system that
scales better when hit w/ high concurrent requests.  I would say a
performance increase of 3x to 9x is worth the extra configuration work.  

Here are some numbers from my tests w/ ab:

Test using ab requesting the same 25K image via three access methods:

1 - Apache Direct: using one file check in httpd.conf to check for
existence of file and serving it from FS if it exists.

2 - Zope via FCGI: using mod_FastCGI from Apache to retrieve image from
a Zope server on a separate server from Apache.

3 - Zope Direct: using port 8080 accessing Zope directly and requesting
the same image.


Image Size:  25,646 bytes

rps = Request per second
min = Connection Times (ms) Total: line min column
min = Connection Times (ms) Total: line avg column
min = Connection Times (ms) Total: line max column


		rps	min	avg	max

-n 10 -c 1
=============================================
Apache Direct	 84.03	  11	  11	  12  (3x over Zope Direct)
Zope via FCGI	 11.83	  44	  84	 245
Zope Direct	 22.32	  28	  44	 139

And if these numbers aren't enough, the chasim just grows from there. 
FCGI does add some overhead but if you're caching to FS that overhead
quickly becomes nominal when you figure the increased serving speed of
going staight from file.


-n 100 -c 10 (run 1)
=============================================
Apache Direct	137.36	  15	  67	 188  (9x over Zope Direct)
Zope via FCGI	 14.26	 215	 667	1953
Zope Direct	 15.55	 289	 615	 805

-n 100 -c 10 (run 2)
=============================================
Apache Direct	142.65	  15	  65	 320
Zope via FCGI	 18.55	 314	 523	1558
Zope Direct	 15.19	 352	 624	 819

-n 100 -c 10 (run 3)
=============================================
Apache Direct	117.10	  17	  77	 282
Zope via FCGI	 16.45	 495	 582	 914
Zope Direct	 17.51	 178	 556	 909



-n 100 -c 25 (run 1)
=============================================
Apache Direct	136.99	  19	 162	 336
Zope via FCGI	 11.89	1359	1937	3050
Zope Direct	 15.40	 238	1432	1759

-n 100 -c 25 (run 2)
=============================================
Apache Direct	139.47	  18	 153	 318
Zope via FCGI	 15.67	 632	1423	2103
Zope Direct	 15.64	 270	1402	1731

-n 100 -c 25 (run 3)
=============================================
Apache Direct	124.69	  19	 173	 414
Zope via FCGI	 14.23	 700	1550	2119
Zope Direct	 15.53	 379	1427	1755



RE: your test suite.

What where you actually testing in the ab printouts?  I'm confused how
you could test image serving rates using ab against test.html.  Wouldn't
that just test the load times for the HTML and not the images?


Don't get me wrong I'm not saying zope is not the greatest dynamic
serving enviroment I've every used.  It is.  I'm just pointing out when
it comes to serving a site that's expected to get some serious load,
look to the tools at your disposal.  Zope alone may not make the cut,
but Zope/Apache is truely a great combination.  The configuration pains
are more than worth it.

-- 
-------------------------------
tonyr@ep.newtimes.com
Director of Web Technology
New Times, Inc.
-------------------------------