[Zope] Will ZEO solve my problem?

Kyler B. Laird laird@ecn.purdue.edu
Mon, 02 Jul 2001 07:14:43 -0500


[This is a terribly fuzzy question/situation.  I'm
looking for insight/suggestions, not guarantees.]

We've been migrating everything we do to Zope for
the past few months.  We are just starting to get
buy-in and funding for equipment.  Already,
however, we have lots of people using our Zope
server which is hosted on a dual P-850 I was able
to hijack for the purpose.  (I found that the Sun
E450 I had available was way too slow.)

We're planning to split things up into a cluster
that consists of multiple HTTPS proxies, some ZEO
clients, a ZEO server and a hot ZEO server spare.
Until then, I need to make the current system
usable.  (We have all of our Heads and Deans using
ZWiki Pages to put together our strategic plan.)

The problem we've been encountering is that every
so often (several times a day) the server goes
nuts and I end up restarting it.  I can watch
"top" and see a single python process take all of
one CPU time for an extended period. 

I've been unable to determine from the logs (and
the server-status of the HTTPS proxy) what's
causing this to happen.  Because we have so many
applications running on this host, the traditional
debugging methods I've seen don't seem to (easily)
apply.

Since I'm going to use ZEO eventually, I thought I
would try it this week to see if it helps with
this problem.  At least I should be able to move
the problem to either the ZEO server or client.

If it ends up in the ZEO client (as I suspect it
will), I can use the front-end proxy to route
requests to other ZEO clients while I restart the
one that's spinning.  I can also restart the
spinning ZEO client quickly.

If it's in the ZEO server, I'm still screwed.  I
have been avoiding packing the database (so that I
have the history and ability to undo some of the
actions), so it takes awhile to start up.

Any thoughts?  Is there a way to tell exactly what
a process is doing (in Zope/Python terms)?  I just
need a clue where to start looking.

Thank you.

--kyler

Some versions:
	
	Mandrake 8.0
	Linux 2.4.4-ac11 (will change on reboot)
	version['ZDChart'] = '0.5.1b'
	version['MSWordMunger'] = '0.1.1'
	version['ZipFolder'] = '0.2.2'
	version['Formulator'] = '0.9.3'
	version['Distutils'] = '1.0.2'
	version['MXDateTime'] = '2.0.1'
	version['psycopg'] = '0.99.2'
	version['HTMLDocument'] = '0.2'
	version['PoPy'] = '2.0.2' #'3.0-beta1'
	version['ZPoPyDA'] = '1.2'
	version['ParsedXML'] = '1.1b1'
	version['PageTemplates'] = '1.3.2'
	version['ZTUtils'] = '1.0.0'
	version['TAL'] = '1.3.2'
	version['OpenLDAP']='1.2.11'
	version['Python']='1.5.2'
	version['Python_lib'] = string.join(string.split(version['Python'], '.')[:2], '.')
	version['PythonLDAP']='1.10alpha3'
	version['Zope']='2.3.3' # '2.3.3b1' # '2.3.2' # '2.3.2b2' # '2.3.2b1' # '2.3.1' # '2.3.0'
	version['ZopeLDAP']='1-1-0'
	version['ZWiki']='0.9.3' #'0.8.1'
	version['CMF']='1.1beta' # '1.0' #'1.0beta'
	version['DCOracle2'] = 'Beta3' # 'beta2'