destruction des objects et connection

Document Actions
Réponses: 6   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

destruction des objects et connection

Posté par airod le 16/03/2009 09:12
Bonjour, voila le problème est trés simple.
j'ai des problèmes de performances avec mon serveur zope.
La config :
Serveur dédié en salle blanche sur debian
1 go de ran dédié
zope 2.10.5

le problème se situe a deux niveaux.
1 - Zope ne libère pas la mémoire et donc fini par utiliser 100% de la memoire dispo et donc fini par swapper.
la seul solution trouvé est de redémarrer le serveur.
Mais ce n'est pas la solution au problème puisque je ne sais pas d'ou ca viens.
A priori, il y aurait des fuite de mémoire, mais comment determiner d'ou ca peut venir?

2 - quand je regarde dans le controlPanel/Database management >> onglet cache parameters. je me rend compte que j'ai systématiquement des connections encore active (?) et des objet en cache alors que je suis sur d'etre le seul connecté.

ex :
Cache Name Number of active objects Total active and non-active objects
<Connection at aaa31d6c> 142 313
<Connection at ad25b3ac> 298 663
<Connection at ad282dec> 175 453
<Connection at ad286e6c> 178 425
<Connection at ae08ee6c> 119 199
<Connection at ae5b6a8c> 303 667
Total 1215

Résultat j'ai des perte de performances importantes, et j'aimerai bien pouvoir résoudre le problème.
Merci, d'avance pour vos suggestions et votre aide.

Ps: j'ai essayé d'installé LeakFinder, mais il n'apparait pas dans mon control panel. Quelqu'un aurait il déjà utilisé ce produit?

Merci
  • Re: destruction des objects et connection

    Posté par airod le 18/03/2009 11:04
    Ca y est j'ai trouvé.....

    il faut bien vérifier que dans le zope.conf a la section Http-server, l'option "force-connection-close on" est bien activé sinon, zope ne détruit pas les objets connexion...
  • Re: destruction des objects et connection

    Posté par airod le 01/04/2009 09:03
    en fait non, j'ai pas trouvé!!! bouhhhh.
    je ne comprend toujours pas comment zope gère son cache. Normalement, lorsqu'une connection est détruite zope devrait détruire le cache associé!? Mais comment puis je dire a zope que la connexion est a détruire afin de libérer le cache?
    des idées?

    merci
  • Re: destruction des objects et connection

    Posté par encolpe le 01/04/2009 09:27
    airod wrote:
    Bonjour, voila le problème est trés simple.
    j'ai des problèmes de performances avec mon serveur zope.
    La config :
    Serveur dédié en salle blanche sur debian
    1 go de ran dédié
    zope 2.10.5

    le problème se situe a deux niveaux.
    1 - Zope ne libère pas la mémoire et donc fini par utiliser 100% de la memoire dispo et donc fini par swapper.
    la seul solution trouvé est de redémarrer le serveur.
    Mais ce n'est pas la solution au problème puisque je ne sais pas d'ou ca viens.
    A priori, il y aurait des fuite de mémoire, mais comment determiner d'ou ca peut venir?


    Pour tester les performances de Zope il faut utiliser ZopeProfiler et PTProfiler.
    Ensuite, il n'y a pas de fuite de mémoire, mais plus probablement un problème de configuration.

    Les paramètres qui peuvent jouer dans le fichier zope.conf :

    - debug-mode on
    - security-policy-implementation python
    - verbose-security on

    Ces trois paramètres sont très pratiques pour le développement mais très gourmands... donc à ne pas mettre en production.

    Ensuite :

    - zserver-threads 4
    - maximum-number-of-session-objects 1000

    Il est plutôt conseillé de multiplier les clients ZEO avec peu de threads plutôt que de multipplier les threads (la limite réelle est 7 mais 2 est conseillée).
    Le cache par session est chargé en RAM, donc il faut limiter la taille entre 1000 et 5000 pour éviter de surcharger la RAM.




    airod wrote:

    2 - quand je regarde dans le controlPanel/Database management >> onglet cache parameters. je me rend compte que j'ai systématiquement des connections encore active (?) et des objet en cache alors que je suis sur d'etre le seul connecté.

    ex :
    Cache Name Number of active objects Total active and non-active objects
    <Connection at aaa31d6c> 142 313
    <Connection at ad25b3ac> 298 663
    <Connection at ad282dec> 175 453
    <Connection at ad286e6c> 178 425
    <Connection at ae08ee6c> 119 199
    <Connection at ae5b6a8c> 303 667
    Total 1215

    Résultat j'ai des perte de performances importantes, et j'aimerai bien pouvoir résoudre le problème.
    Merci, d'avance pour vos suggestions et votre aide.



    C'est Apache qui doit garder la connexion active.
    Sinon, il faudrait configurer CacheFu pour limiter la charge sur le serveur Zope et laisser Apache faire son travail.
    _________________________
    Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales
  • Re: destruction des objects et connection

    Posté par airod le 01/04/2009 14:14
    merci pour cette réponse trés rapide. Mais j'ai un soucis pour faire fonctionner ZopeProfiler. En effet il est bien pris en charge par mon zope mais dés que je lance un service du zopeProfiler, mon serveur ne réagit plus. Si je le monitore directement au niveau system, l'instance de zope ne travaille même pas. est ce que vous pouvez m'aider un peu a ce sujet.

    merci
  • Re: destruction des objects et connection

    Posté par encolpe le 01/04/2009 14:52
    Et que disent les logs ?

    A force de de dire « ici ça ne marche pas » la seule réponse qui va revenir c'est « chez moi ça marche » ©
    _________________________
    Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales
  • Re: destruction des objects et connection

    Posté par airod le 02/04/2009 09:11
    bonjour, voici ce que me dise les logs (event.log et Z2.log)
    EVENT.LOG :
    code:
    ------
    2009-04-02T08:45:06 INFO ZServer HTTP server started at Thu Apr  2 08:45:06 2009
    Hostname: 0.0.0.0
    Port: 8080
    ------
    2009-04-02T08:45:06 INFO ZServer WebDAV server started at Thu Apr  2 08:45:06 2009
    Hostname: 0.0.0.0
    Port: 1980
    ------
    2009-04-02T08:45:41 INFO PTProfiler Patching page templates...
    ------
    2009-04-02T08:45:41 INFO PTProfiler patch Page Templates pt_render
    ------
    2009-04-02T08:45:41 INFO PTProfiler Patching Z3 TALES engine...
    ------
    2009-04-02T08:45:41 INFO PTProfiler patch TALES __call__ of expression python
    ------
    2009-04-02T08:45:41 INFO PTProfiler patch TALES __call__ of expression path
    ------
    2009-04-02T08:45:41 INFO PTProfiler patch TALES __call__ of expression string
    ------
    2009-04-02T08:45:41 INFO PTProfiler Patched
    ------
    2009-04-02T08:45:44 INFO Zope Ready to handle requests


    et le Z2.LOG (juste les log qui correspondent au lancement de "Python Level" de ZopeProfiler:

    code:
    127.0.0.1 - zope[02/Apr/2009:09:05:36 +0200] "POST /VirtualHostBase/https/dev.perinat-gyneco.fr:443/VirtualHostRoot/Control_Panel/ZopeProfiler/showLow HTTP/1.1" 200 10831 "https://dev.perinat-gyneco.fr/Control_Panel/ZopeProfiler/showLow" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)"
    127.0.0.1 - zope[02/Apr/2009:09:05:36 +0200] "GET /VirtualHostBase/https/dev.perinat-gyneco.fr:443/VirtualHostRoot/p_/sp HTTP/1.1" 200 0 "https://dev.perinat-gyneco.fr/Control_Panel/ZopeProfiler/showLow" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)"
    127.0.0.1 - zope[02/Apr/2009:09:05:37 +0200] "GET /VirtualHostBase/https/dev.perinat-gyneco.fr:443/VirtualHostRoot/p_/ltab HTTP/1.1" 200 0 "https://dev.perinat-gyneco.fr/Control_Panel/ZopeProfiler/showLow" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)"
    127.0.0.1 - zope[02/Apr/2009:09:05:37 +0200] "GET /VirtualHostBase/https/dev.perinat-gyneco.fr:443/VirtualHostRoot/p_/rtab HTTP/1.1" 200 0 "https://dev.perinat-gyneco.fr/Control_Panel/ZopeProfiler/showLow" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)"


    a partir du moment ou j'ai lancé un level, zope est bloqué... j'ai pas de retour ni dans le manage, ni sur le site.
    J'ai vérifier que les modules Profile et pstats sont bien présents sur le serveur.

    Ps: est ce que ca pourrait venir du fait que le serveur est virtualisé?

    merci d'avance pour l'aide

Python.org : Le site officiel du langage Python.
Zope.org : Le site web officiel de Zope.
Daily Python-URL : Actus de l'univers Python.
Tribute to Zyons : Zyons notre ami et membre fondateur de l'Afpy, nous quittait en 2005.