----- Original Message ----- From: "Edward Pollard" <pollej@uleth.ca> To: "Dieter Maurer" <dieter@handshake.de> Cc: <zope@zope.org>; "Chris McDonough" <chrism@plope.com>; "Bobb" <rawbobb@hotmail.com> Sent: Monday, March 01, 2004 11:36 AM Subject: Re: [Zope] Zope 2.7 FTP Bandwidth Limiter?
On Feb 28, 2004, at 5:41 AM, Dieter Maurer wrote:
The 100% CPU spike is likely the cause of the slow performance. I think a reasonable strategy might be to turn on profiling in Zope 2.7 (see zope.conf profile-publisher? key, and Control_Panel -> Debug) to see what falls out of that. I'm sure there's a lot of information about this if you google for "zope profiling".
When the time is spent in ZServer (rather than Zope itself), the profiler will not be able to report this.
When I (once) analysed the timing behaviour of an 80 MB file upload, Zope itself used only a small proportion of the complete time. It turned out that "ZPublisher.Client" was responsible for most of the total time (which was used as upload client). It is not designed for large object transfer and forced the computer into swapping.
So, I guess, I know that ZServer is the culprit?
I'm not entirely sure how I can leverage this information into a solution.
How about a good Monday morning helping of more information? Perhaps this can help inspire some insight into this quandary.
This is running on a Dell Poweredge 1750 - single processor 2.4GHz P4 Xeon with Hyperthreading. The OS is running on the mirrored internal HD, Zope on a NFS mounted (via TCP) volume.
Ed is the mirroring OS or hardware? (OS being much slower). NFS is going to be slower than local (obviously). Do you mount w/ a dns name or ip address? (dns will have to resolve first). If dns, do you have it in a host file (faster than the lookup). This is a good helping of info, maybe.. ;)
(we've experimented in moving Zope to the local file system, as well as disabling hyperthreading, to test box specific issues - no speed increase) (Since we are on Linux, we cannot bind Python to a specific CPU)
How we compile our Zope: export CC="gcc -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/kerberos/include" ./configure --prefix=/web/zdevl/python --with-threads make make install
Stuff we add to our Zope/Python: python-ldap-2.0.0pre15.tar.gz PIL - 1.1.4 (python imaging library) egenix-mx-base-2.0.5 psycopg-1.1.10 ExternalFile ( v1-2-0 ) LDAPUserFolder ( v2.2 - requires python-ldap ) LocalFS ( v1-0-0 ) VarImage ( v2.3.1 - requires the PIL -- python imaging library ) ZPsycopgDA ( v1.1.10 - comes with the psycopg package) ...plus a few home-brew ZClasses.
----
Ed