IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Wildfly/JBoss Java Discussion :

Comment exécuter un gc avec jboss-cli ?


Sujet :

Wildfly/JBoss Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut Comment exécuter un gc avec jboss-cli ?
    Bonjour,

    Est-ce que quelqu'un pourrait me dire comment executer le garbage collector à partir de la commande jboss-cli ?

    Merci à vous

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    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

  3. #3
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Cette commande devrait faire le boulot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /core-service=platform-mbean/type=memory:gc()

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    Le but est d'être proactif au cas où.... Merciiii beaucoup hasalex;-)

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    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.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    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

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    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

  9. #9
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    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

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    Je suis entièrement d'accord avec vous ...


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment exécuter une tâche avec un signal ?
    Par fearyourself dans le forum Télécharger
    Réponses: 0
    Dernier message: 30/11/2010, 17h30
  2. Comment exécuter une DLL écrite en Delphi avec RunDLL32 ?
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 09/01/2008, 19h03
  3. Réponses: 2
    Dernier message: 16/07/2007, 16h04
  4. [JBoss JBPM] comment réaliser un workflow avec des cycles ?
    Par biggef dans le forum Wildfly/JBoss
    Réponses: 6
    Dernier message: 27/04/2006, 12h17
  5. [JBOSS] comment changer de base de données avec jboss?
    Par khokho dans le forum Wildfly/JBoss
    Réponses: 5
    Dernier message: 13/03/2006, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo