[Zope] high loads, more threads, spinning wheels
Stefan H. Holek
stefan at epy.co.at
Mon May 2 10:26:13 EDT 2005
I assume what you see are "hangs" i.e. Zope appearing to not accept new
requests, as soon as all 4 worker threads are busy waiting for the
RDBMS system to answer.
Now, using more threads will push back the point of unresponsiveness,
but as soon as you have the 13th request hitting Zope, you are back at
square one.
I see two ways of tackling the situation:
- Optimize the hell out of your RDBMS and your SQL queries. Make them
return fast enough to handle the load.
- Write a front-end that does not rely on Zope but takes advantage of
Apache's scalability features. This could be done in mod_python or
mod_perl for example.
In that one project I am thinking about we ended up doing both.
Sometimes you just have to accept that Zope is probably not the right
tool for the job.
Stefan
On 2. Mai 2005, at 15:28, Jim Abramson wrote:
>>
>> Upping the number of threads is unlikely to give you better
>> performance. The only case where this could make sense is if
>> you had something like a highly saturated RDBMS backend,
>> tying up your worker threads.
>>
>
> Well this is *exactly* the issue I'm facing. I need to soften
> the impact of this situation if possible, and it's going to be
> ZEO in the end, but rolling this out is probably not going to
> be possible in the very short term.
>
>> But - Zope threads don't operate like you probably expect
>> from knowing Apache and similar models. For one, they *never*
>> will run in parallel.
>> Python employs a global interpreter lock (GIL), so there will
>> only be a single thread "working" at all times. What you want
>> is to up the number of processes (interpreters) not the
>> number of threads. Hence ZEO.
>>
>
> So far I've done some very off-the-cuff tests upping the
> threads/connections to 12/16 and banging on it with jmeter.
> The results were favorable in comparison to the default config.
> Could this have been a fluke?
>
> Jim
>
--
Software Engineering is Programming when you can't. --E. W. Dijkstra
More information about the Zope
mailing list