[Zope] Optimisation fun and games

Bakhtiar A Hamid kedai@kedai.com.my
Mon, 20 May 2002 17:39:42 +0800


On Monday 20 May 2002 09:29 am, Richard Jones wrote:
> We (http://www.ekit.com/) have a popular website, and it's hit fairly h=
ard
> (around 550k hits since the start of May, and with the summer holidays =
just
> starting, we're expecting it to skyrocket). I've therefore been working=
 on
> ways to get Zope to go as fast as possible. Here's some hints for other=
s
> who are running (or are expecting to run) high-volume Zope sites:
>
> 1) ZEO clients - we have about 9 of them, spread over a number of CPUs.
> We'll be putting in some more real soon.
> 2) Two apache frontends using FastCGI to the ZEO clients. They have an
> on-disk cache which serves up images (using rewrite rules to trap image
> URLs before they are sent to Zope) meaning Zope can do more important s=
tuff
> than serve up static binary files. This is currently in testing and hal=
ves
> the average page load time. We don't have a real loadbalancer set up fo=
r
> the apaches, we just serve up different domains (we have many) from eac=
h.
> Watch the max number of connections per apache though - we've had to up=
 it
> several times. 3) Several uses of RAM caches in Zope - the stylesheet, =
the
> sidebar HTML chunk and the front page content HTML chunk. Use the
> CallProfiler to isolate calls that change very little between users. RA=
M
> cache those.
> 4) CallProfiler'ed up the wazoo. Lots of CallProfiler analysis and fixi=
ng
> of hotspots. We managed halve our average page load time just doing thi=
s.
>
> Just thought this might be interesting :)
>
i'd suggest

5 - squid.  throw in squid and stuff will be served much much faster. off=
=20
course, the pages need to be cacheable i.e with at least Expires field, o=
r=20
better yet put out the necessary cache headers.


--=20

=09http://www.kedai.com.my/             http://www.kedai.com.my/eZine
=09http://www.zope.org/Members/kedai    http://www.my-zope.org
=09We don't need no, no no no, no parental guidance here