Project

General

Profile

Actions

Bug #3113

closed

Désactiver le FULL Garbage Collector inopportun dans Silverpeas

Added by David Lesimple over 9 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Start date:
03/30/2012
Due date:
% Done:

100%

Estimated time:
Navigateur:
Tous
Votre version de Silverpeas:
5.8.1
Système d'exploitation:
Votre base de données:
Toutes
Livraison en TEST:
Livraison en PROD:

Description

Actuellement, Silverpeas fait un Full GC toutes les 3-4 minutes environ (commandé via protocole RMI), et ce Full GC bloque le système pendant plus de 3 secondes !!
Plus de détails: https://extranet.silverpeas.com/silverpeas/Publication/6750

Solution:
Ajouter -XX:+DisableExplicitGC dans le scripts de démarrage.
Ce serait vraiment bien de l'avoir dans la 5.9

Déja validé chez HCL.

Actions #1

Updated by Nicolas Eysseric over 9 years ago

  • Status changed from New to Assigned
  • Assignee set to Miguel Moquillon
Actions #2

Updated by Miguel Moquillon over 9 years ago

  • Status changed from Assigned to In progress...
Actions #3

Updated by Miguel Moquillon over 9 years ago

David, peux tu m'indiquer le type de machine sur laquelle tu as eu ce problème :
- Quantité de RAM
- Nombre de processeurs
- OS
- Taille du tas maxi allouée à la VM
- Taille du tas mini allouée à la VM

Actions #4

Updated by David Lesimple over 9 years ago

Observé sur plusieurs plateformes (prod et recette), ce sont des VMs, de 8 Go ou 16 Go, Debian.
Pour la mémoire, on avait indiférement 1 Go - 1GO ou 2 à 4 Go.

Actions #5

Updated by Miguel Moquillon over 9 years ago

L'option -XX:+DisableExplicitGC n'est pas viable pour un serveur d'application même s'il résout le pb à court terme.

Ici, le pb vient finalement que le garbage majeur a lieu à des intervalles de temps trop court (provoquer par RMI pour le garbage des références distribuées). Il faudrait plutôt agir là dessus. Essais plutôt avec ces options :
-Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000
Ceci provoquera un garbage majeur de la part du garbage collector distribué tous les heures.

Nous allons spécifier par défaut ce paramètre au démarrage de silverpeas mais aussi permettre au client de spécifier ses propres options à la JVM via un paramètre dans le fichier de conf. Ainsi, pour des contextes d'exécution particulier, il pourra affiner le paramétrage dans la gestion de la mémoire de la JVM (en jouant par exemple sur le ratio entre les tailles de la young generation et de la tenured generation)

Actions #6

Updated by Miguel Moquillon over 9 years ago

  • Status changed from In progress... to Resolved
  • Priority changed from High to Normal

Juste une précision : ceci n'est pas un bogue mais une demande de feature. En effet, le problème indiqué ici n'est pas inhérent à Silverpeas mais dépend de la configuration de la JVM par rapport à l'usage qu'en est fait de Silverpeas dans le contexte particulier du client.

Sinon, l'installateur de Silverpeas a été mise à jour de façon à supporter les caractéristiques suivantes quant à la gestion de la mémoire par la JVM :
- Les paramètres RAM_MIN et RAM_MAX ont été simplifiés en un seul paramètre RAM_MAX à partir duquel la taille du tas alloué à la JVM est calculée ; pour une meilleur gestion de la mémoire de la part de la JVM, il est recommandé que la taille mini et maxi du tas soit la même.
- Un paramètre JAVA_OPTS apparaît à partir duquel il est possible d'indiquer des paramètres spécifiques à la JVM ; ce paramètre permettrait par exemple de passer des instructions plus précises à la JVM quant à sa gestion de sa mémoire afin d'adapter celle-ci à un contexte particulier d'un client.
- Le distributed garbage collecting est désormais planifié à toutes les heures en lieu et place de tous les 3 minutes.

Actions #7

Updated by David Lesimple over 9 years ago

Pourrais-ton ajouter au paramètre JAVA_OPTS la valeur -Djboss.bind.address=0.0.0.0 ?

on le met de toute façon de manière systématique lors des installations et de nombreux clients/prospects oublient de le préciser (ou alors il faut le préciser dans www.silverpeas.org/installation.html

Actions #8

Updated by Miguel Moquillon over 9 years ago

Oui on pourra effectivement le faire avec JAVA_OPTS.
On pourra le préciser sur la page www.silverpeas.org/installation.html une fois cette feature intégrée.

Actions #9

Updated by Nicolas Eysseric over 9 years ago

Miguel, merci de rajouter le -b 0.0.0.0 par défaut sur la branche actuelle (qui reste à intégrer).

Actions #10

Updated by Miguel Moquillon over 9 years ago

Si JBoss est en front-end directe chez la majorité de nos clients, effectivement cette option est à rajoutée. Dans le cas contraire, je préfère éviter de la mettre pour des raisons de sécurité.
Qu'en est il ?

Actions #11

Updated by Nicolas Eysseric over 9 years ago

D'après mon expérience (et celle de David je pense aussi), la grande majorité de nos clients ajoute cette option (ou plutôt, oublie de la rajouter). Et comme à chaque nouvelle version, le package d'installation doit être repris, ce paramétrage est oublié.

Actions #12

Updated by David Lesimple over 9 years ago

C'est exactement ça..

Actions #13

Updated by Miguel Moquillon over 9 years ago

Ok, je l'ai rajouté et poussé. Reste à intégrer.

Actions #14

Updated by Nicolas Eysseric over 9 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 0 to 100
Actions

Also available in: Atom PDF