[Zope-dev] Plone/Zeocluster performances problems

Service TICE servicetice at gmail.com
Wed Nov 26 12:04:33 EST 2008


Hello

After many searches I’m stuck on several problems, I hope you guys can  
help me :)

I’m using Plone as institutional webportal (Zope 2.9.8-final, python  
2.4.4) with python 2.4.4. The portal runs a zeocluster with 4  
production instances, 3 threads each, and 1 admin instance (in debug  
mode). All instances share the same ZODB and data.fs on local drive.  
We use Apache 2 and a "STICKY_ROUTE" cookie to redirect user to the  
instance he's logged to.
We use SSO authentification (CAS) with PloneCASLogin 2.5.0.

Apache configuration:

## Default Virtual Host Configuration
Listen xxx.xxx.xxx:80
NameVirtualHost xxx.xxx.xxx:80
<VirtualHost xxx.xxx.xxx:80>
            ServerName xxx.xxx.xxx
            ServerAdmin xxx at xxx.xxx
            <Proxy balancer://lb>
                        BalancerMember http://xxx.xxx.xxx:8080  
route=8080"
                        BalancerMember http://xxx.xxx.xxx:8081  
route=8081"
                        BalancerMember http://xxx.xxx.xxx:8082  
route=8082"
                        BalancerMember http://xxx.xxx.xxx:8083  
route=8083"
            </Proxy>
            # conditional proxy pass
            ProxyPass / balancer://lb/VirtualHostBase/http/xxx.xxx.xxx: 
80/plone/VirtualHostRoot/             stickysession=STICKY_ROUTE
            #LOGS
            #LogLevel debug
            ServerAlias *
            CustomLog /opt/apache2/xxx.xxx.xxx.log combined
</VirtualHost>


We noticed that, sometimes, users are not redirected to right  
instance, so we decided to use the same temporary_folder for all  
instances and users are connected to the 4 instances at same time.

But this modification causes errors like this one from my event.log  
file:

2008-11-26T10:45:23 INFO ZPublisher.Conflict ConflictError at / 
VirtualHostBase/http/XXXXX.fr:80/XXXX/VirtualHostRoot/Cours/ 
Cours.XXXXX.4424/fichiersan_XXXXX.2530/cours_supports_affichage:  
database conflict error (oid 0x2571, class BTrees._OOBTree.OOBTree,  
serial this txn started with 0x037a24a416ae79bb 2008-11-26  
09:40:05.315987, serial currently committed 0x037a24a95ee0d788  
2008-11-26 09:45:22.237099) (1 conflicts (0 unresolved) since startup  
at Wed Nov 26 10:43:19 2008)

and this one from plone's error_log:

Request URL

    http://XXXXXX.fr/Members/XXXXX/Cours/Cours.XXXXX.4648/cours_attacher_template

Exception Type

    database conflict error (oid 0x1247, class  
BTrees._OOBTree.OOBTree, serial this txn started with  
0x037a1ffe66682b66 2008-11-25 13:50:24.001620, serial currently  
committed 0x037a1ffeae62ca44 2008-11-25 13:50:40.871695)

Exception Value

    database conflict error (oid 0x1247, class  
BTrees._OOBTree.OOBTree, serial this txn started with  
0x037a1ffe66682b66 2008-11-25 13:50:24.001620, serial currently  
committed 0x037a1ffeae62ca44 2008-11-25 13:50:40.871695)

Traceback (innermost last):

    * Module Zope2.App.startup, line 173, in zpublisher_exception_hook
    * Module ZPublisher.Publish, line 121, in publish
    * Module Zope2.App.startup, line 240, in commit
    * Module transaction._manager, line 96, in commit
    * Module transaction._transaction, line 380, in commit
    * Module transaction._transaction, line 378, in commit
    * Module transaction._transaction, line 436, in _commitResources
    * Module ZODB.Connection, line 665, in tpc_vote
    * Module ZEO.ClientStorage, line 893, in tpc_vote
    * Module ZEO.ClientStorage, line 877, in _check_serials

ConflictError: database conflict error (oid 0x1247, class  
BTrees._OOBTree.OOBTree, serial this txn started with  
0x037a1ffe66682b66 2008-11-25 13:50:24.001620, serial currently  
committed 0x037a1ffeae62ca44 2008-11-25 13:50:40.871695)

 From what I understand, there's a conflict in my database when user  
wants to access an object. I assume it's related to the  
temporary_folder sharing modification because errors appeared after it.
Is there a way to resolve this error? Is there inconvenient to share  
temporary_folder? Should I stop it?

My second problem, found in the event.log:

2008-11-26T10:45:28 ERROR PortalTransforms Cannot register transform  
lynx_dump, using BrokenTransform: Error
Unable to find binary "lynx" in /opt/local/bin:/usr/bin:/bin:/usr/ 
sbin:/sbin:/usr/local/bin:/usr/X11/bin

I don't understand when and why Plone tries to access to Lynx. We  
don't receive any traceback error in Plone's error_log.

Last but not least. Sometimes instances stops all alone. We were not  
able to find why because we don't receive any error, message or  
signal. When stops occur, we restart Zeo by ssh, then instances works  
fine for some times but the problem comes back later.
The server has 8 processors with very low usage but the 12gb RAM are  
always saturated à 98%. Python process takes 1 to 2gb RAM but there's  
a lot of "httpd" processes, up to 2.5gb each, their origin remains  
unknown to us.

Thanks


More information about the Zope-Dev mailing list