Bonjour,
Est-ce que quelqu'un pourrait me dire comment executer le garbage collector à partir de la commande jboss-cli ?
Merci à vous
Bonjour,
Est-ce que quelqu'un pourrait me dire comment executer le garbage collector à partir de la commande jboss-cli ?
Merci à vous
Avant j'utilisais
./twiddle.sh invoke jboss.system:type=Server runGarbageCollector mais je souhaiterais faire la même chose en utilisant jboss-cli ...
Merci à vous
Cette commande devrait faire le boulot :
Code : Sélectionner tout - Visualiser dans une fenêtre à part /core-service=platform-mbean/type=memory:gc()
et quel est le but de la manoeuvre? Si on dit qu'il ne faut pas faire de GC dans du code, ce n'est pas pour aller en plus le faire à la main depuis l'extérieur sans raison
Le but est d'être proactif au cas où.... Merciiii beaucoup hasalex;-)
Au cas où quoi? La jvm est capable de gérer son GC comme une grande et comme le dit la javadoc de GC: aucune garantie que la jvm en fera quoi que ce soit de ta demande.... Et même si ça marche, tu pourrais faire pire. Imaginons que tu arrive à la forcer à libérer tous les objets inutiles, ce qui prend pas mal de temps dans le cadre d'un full gc et peut suspendre la jvm pendant plusieurs secondes, que ce full gc aie libéré 70% de la mémoire, que la jvm derrière la restitue à l'OS. Ta prochaine grosse opération sera de fait ralentie parce que la jvm devra de nouveau grandir en taille, alors qu'en libérant les objet au fur et à mesure des besoins, elle n'aurait pas eu besoin de se suspendre ni de faire du yoyo avec le système.
Le full gc est une opération considérée par la jvm comme une opération de dernier recours, elle s'en sort en général sans jamais avoir besoin d'y recourir.
Tu as entièrement raison et je partage ton opinion mais il vaut mieux en dernier recours un service dégradé qu'un service qui n'est plus disponible
c'est juste que j'ai du mal a imaginer une solution où le service n'est pas disponible mais où gc éviterait ça, puisque la jvm te garantit des full gc avant de s'effondrer
bonjour,
Je suis entièrement d'accord avec tchize_, je ne vois aucun intérêt a lancer le GC à la main dans une application en prod.
Si le service est dégradé cela ne viens en aucun cas d'une mauvaise gestion de la JVM.
En fait, le problème viens soit d'une JVM mal configurée, la machine est mal dimensionné par rapport à la charge ou alors cela viens d'un problème de conception.
Il n'y a pas de problème, il n'y a que des solutions.
Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran
Mes Articles : Mon premier article est sur le language D
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager