[Zope-dev] Medusa Request Queue/profiling

Toby Dickenson tdickenson@geminidataloggers.com
Thu, 10 Oct 2002 19:09:28 +0100


On Thursday 10 Oct 2002 7:02 pm, Brian R Brinegar wrote:
> On Thu, 10 Oct 2002, Toby Dickenson wrote:
> > On Thursday 10 Oct 2002 5:06 pm, Brian R Brinegar wrote:
> > > And my first
> > > intuition is to increase the number of threads.
> >
> > If your system is already cpu bound then your intuition may be wrong.
> > more threads means more context switching overhead reducing overall
> > throughput, each request takes longer because they get a smaller shar=
e of
> > the cpu, and a larger memory overhead (memory usage is proportional t=
o
> > the number of threads)
>
> It's possible to add more Zeo Clients which will produce more available
> threads. I don't want to buy more machines if the machines we have aren=
't
> being using to capacity.

more threads on the same number of machines wont increase capacity unless=
 you=20
are doing something that blocks requests without using cpu time, such as=20
making requests to an external rdbms.

You could try fewer threads, perhaps 2 per cpu, and set a proportionally=20
larger zodb cache size.

> If there is a way to see that the Zeo Clients are getting more requests
> than they can handle and thus queueing up requests it is probably time =
to
> add more machines.

Does your front end proxy log elapsed time for each request? squid does.