Re: [ZODB-Dev] Re: ZODB + ZEO performances problem

2008-07-17 Thread Thierry Florac
Le jeudi 17 juillet 2008 à 09:38 -0400, Tres Seaver a écrit :
  I have one client whose setup is similar (Linux, but using a big iron
  SAN), where the first phase of incremental repozo backup (the part
  checking whether incremental is possible) takes longer by a factor of
  two than just doing a full backup.  Putting it on local disk both makes
  writes go faster and makes incremental backup feasible.
  
  Actually, I've already seen that big reads/writes are efficient on the
  SAN (more than 40 MB/s) but small ones (many 'seek' and 'read' of 8 Ko
  as made by ZEO) are not efficient at all ; I'll try to see if putting
  ZEO databases as well as Zope clients caches on local disks (which are
  also mirrored) can be more efficient (a hourly cron job can then copy
  ZEO databases on the SAN for data security, I think...).
 
 Rather than copying the open file, which can potentially lose a
 transaction which occurs during the copy, I would use the 'repozo'
 script to create backup sets onto the remote drive.


  Hi,

Just to end up this discussion, I think I finally managed to solve all
my problems...
So in fact :
 - I moved all ZEO databases and ZEO clients caches on the local file
system ; even mirrored, read/write performances for ZEO/Zope processes
are far better than what they were on the SAN
 - as this site is an internal site, nightly transactions are unlikely
to occur ; so I can use repozo but a simple file copy may often be
sufficient to save data on the SAN
 - adding a QueueCatalog makes full-text indexing defferable, and
modified objects stores quick
 - system hangs seems to be caused by swapping : as soon as the Zope
process starts to swap on this Solaris box, all threads are completely
frozen ! Adding 2 GB of RAM on the server seems to have solved this
problem...

Thanks all for your help and advises,

  Thierry



-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


[ZODB-Dev] Re: ZODB + ZEO performances problem

2008-07-16 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Thierry Florac wrote:

 I'm currently trying to migrate an old Zope-2.6.1 application to
 Zope-2.9.9.
 The new application platform is a Sun Sparc Solaris 10 server (dual
 processors).
 
 Application setup includes a ZEO server managing two databases (a main
 one for common data and a catalog to store catalog), and two Zope
 clients (one as main frontend and another one for uncommon
 administration tasks, both with standard threads count of 4).
 Database sizes (when packed) are of 280 and 400 MB ; Zope clients caches
 are of 300 and 500 MB, for 4 and 8 objects.
 
 All data are stored on two mirrored (via RAID 1) Hitachi SAN with quite
 good writing speed.

Because you need fast *seek* speed, too, I would recommend trying your
app with the ZODB on local disk, first.  In fact, I never recommend
putting the main ZODB on a non-local disk, for just this reason.  The
usage pattern of FileStorage (one big file, writing only at the end, but
with lots of random-access reads throughout) is nearly worst-case for
such deployments.

I have one client whose setup is similar (Linux, but using a big iron
SAN), where the first phase of incremental repozo backup (the part
checking whether incremental is possible) takes longer by a factor of
two than just doing a full backup.  Putting it on local disk both makes
writes go faster and makes incremental backup feasible.

If you must stay with the SAN, I would investigate whether
DirectoryStorage, which uses lots of litte files, is a better fit.

 I actually have two problems with this configuration :
  - storing an object into ZODB is VERY slow ; it can take more than 30
 seconds when the object wasn't saved recently, event under light load. I
 actually suspect that it's the catalog full-text search index which is
 long to load, update and store. The old application under Zope-2.6.1
 didn't have this problem (but also didn't use ZEO !). Is there a
 specific way to handle catalogs with ZEO, should I avoid this kind of
 configuration ?

You can change the application to use QueueCatalog, which defers writes
to a configurable set of indexes (typically the text index(es)) for
later processing.  I often run that processing via a cron job or other
long-running, non-server process (running as a ZEO client).

  - sometimes (but most often under quite heavy load) the Zope clients
 completely hang and stop responding, without any access or error log,
 and without any disk or CPU activity. I suppose it's a kind of deadlock,
 how can I detect the source of the problem ?
 
 Many thanks for any help or advise, as the resolution of these problems
 is quite urgent...

As Alan said, the DeadlockDebugger product is designed to help diagnose
such issues.


Tres.
- --
===
Tres Seaver  +1 540-429-0999  [EMAIL PROTECTED]
Palladion Software   Excellence by Designhttp://palladion.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIfp7e+gerLs4ltQ4RAgmfAJ9K9TtMfLc3i0hndANvvrY/PaA9qwCgrof8
YAGIUADOgpkIJvb2A7c5JJM=
=76B6
-END PGP SIGNATURE-

___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev