Je recherche un outil ou un script qui prendra le journal de la console de mon application Web, analysera les informations de récupération de place et les affichera de manière significative.
Je démarre sur une JVM Sun Java 1.4.2 avec les drapeaux suivants:
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
La sortie du journal ressemble à ceci:
54.736: [Full GC 54.737: [Tenured: 172798K->18092K(174784K), 2.3792658 secs] 257598K->18092K(259584K), [Perm : 20476K->20476K(20480K)], 2.4715398 secs]
Il serait beaucoup plus facile de comprendre quelques centaines de ces types d'entrées de journal si j'avais un outil qui représenterait visuellement les tendances de la collecte des ordures.
La boîte à outils GC d'IBM fait exactement ce que vous demandez.
https://www.ibm.com/developerworks/Java/jdk/tools/gcmv/
Je ne sais pas si c'est compatible avec les journaux GC de la machine virtuelle Java de Sun.
gcviewer fait ce que vous voulez.
Je pense que certaines personnes ajoutent Java sondes qui n'analysent pas vraiment les journaux de collecte de déchets comme le dit la question ...
J'en ai essayé d'autres (gcviewer, gchisto, IBM) et le meilleur outil que j'ai trouvé pour analyser les journaux GC est HPjmeter
Il est principalement destiné aux JVM HP-UX, mais il fonctionne également généralement avec les JVM Sun et fait un excellent travail.
(source: xebia.com )
J'ai essayé un outil en ligne http://gceasy.io , il peut lire mon journal Sun jdk 1.8 gc.
L'outil le plus puissant que j'ai trouvé pour travailler avec les journaux JVM IBM et Hotspot et les visualiser est le PMAT d'IBM: https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview? communityUuid = 22d56091-3a7b-4497-b36e-634b51838e11
Je le trouve à la fois plus rapide et donne plus de détails que l'outil dans IBM Support Assistant. Il est continuellement mis à jour, le 12 juillet dernier.
Cependant, il semble avoir des problèmes lors de l'analyse des journaux avec le CMS de stratégie, mais nous espérons que cela pourra être corrigé.
PrintGCStats est assez bon aussi, et donne de bonnes statistiques, mais pas pour la visualisation dans le temps, qui nécessite un peu de travail.
J'utilise YourKit Java profiler , qui vous permet de mesurer ce genre de choses, et bien plus encore, mais en utilisant son propre format plutôt que d'analyser le journal. Il peut faire plus sous Java 5, mais devrait fonctionner sous 1.4.
Il y a quelques années, John Coomes (groupe Hotspot GC) avait publié PrintGCStats, un script awk pour "résumer les statistiques sur la collecte des ordures, en particulier les totaux de temps de pause gc, les moyennes, les écarts maximum et standard". Une copie du script est hébergée sur Java.net: http://Java.net/projects/printgcstats
Essayez VisualGC de Sun. Il existe des versions JDK 4 et 5 qui vous donnent un bon aperçu de ce qui se passe dans les espaces eden, générationnel et permanent. Vous devez ajouter un JAR et obtenir un PID et Bob est votre oncle.
jconsole
peut vous aider beaucoup, mais je pense que c'est Java 5 et plus tard seulement. Une fois que j'ai entendu quelqu'un de Sun parler à notre université et il a déclaré que Java 6 le garbage collector est BEAUCOUP mieux que les anciens qui nécessitaient un réglage compliqué presque tout le temps pour les grandes applications. Java 6 GC semble évoluer) beaucoup mieux sur les SMP.
le plugin gchisto pour VisualVM ne fonctionne pas https://gchisto.dev.Java.net/
J'ai un fichier avec tous les détails de printgc pour jdk1.6 mais je n'ai pas trouvé d'outil pour le lire. Auparavant, avec jdk1.5, nous utilisions HPjmeter, cela fonctionnait bien, mais maintenant avec jdk1.6, cela ne fonctionne pas.
Testé suivant: IBM Pattern Modeling and Analysis Tool pour Java Garbage Collector - il ne reconnaît pas le fichier. GCCollector ne fonctionne pas, il continue de lire le fichier pour analyse.
Que diriez-vous d'essayer un outil de profilage comme JProbe Freeware (plug-in Eclipse).