Bug #3113
ferméDésactiver le FULL Garbage Collector inopportun dans Silverpeas
100%
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.
Mis à jour par Nicolas Eysseric il y a plus de 12 ans
- Statut changé de New à Assigned
- Assigné à mis à Miguel Moquillon
Mis à jour par Miguel Moquillon il y a plus de 12 ans
- Statut changé de Assigned à In progress...
Mis à jour par Miguel Moquillon il y a plus de 12 ans
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
Mis à jour par David Lesimple il y a plus de 12 ans
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.
Mis à jour par Miguel Moquillon il y a plus de 12 ans
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)
Mis à jour par Miguel Moquillon il y a plus de 12 ans
- Statut changé de In progress... à Resolved
- Priorité changé de High à 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.
Mis à jour par David Lesimple il y a plus de 12 ans
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
Mis à jour par Miguel Moquillon il y a plus de 12 ans
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.
Mis à jour par Nicolas Eysseric il y a plus de 12 ans
Miguel, merci de rajouter le -b 0.0.0.0 par défaut sur la branche actuelle (qui reste à intégrer).
Mis à jour par Miguel Moquillon il y a plus de 12 ans
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 ?
Mis à jour par Nicolas Eysseric il y a plus de 12 ans
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é.
Mis à jour par Miguel Moquillon il y a plus de 12 ans
Ok, je l'ai rajouté et poussé. Reste à intégrer.
Mis à jour par Nicolas Eysseric il y a plus de 12 ans
- Statut changé de Resolved à Closed
- % réalisé changé de 0 à 100