Vérifier l'utilisation du tas avec Java Flight Recorder

Ce que je voulais faire était d'utiliser jcmd pour obtenir le fichier jfr sur le serveur d'applications Web et vérifier l'état d'utilisation du tas avec jmc sur mon PC (Windows) pour le développement.

Informations de base

Conclusion (là où il a fallu du temps pour résoudre)

Afin d'enregistrer les données d'utilisation du tas dans le fichier jfr, il est nécessaire de modifier le profil et de le passer comme paramètre de paramètres de jcmd. (Il m'a fallu beaucoup de temps pour y arriver, probablement parce que je ne le cherchais pas.)

procédure

1. 1. Modification du profil

Deux types de profils sont stockés ci-dessous.

$ cd [JDK_PATH]/jre/lib/jfr
$ ll
-rw-r--r--1 racine racine 20109 6 octobre 22:55 default.jfc
-rw-r--r--1 racine racine 20065 6 octobre 22:55 profile.jfc

Copiez profile.jfc (myProfile.jfc) et activez la partie du tas qui semble être liée à l'enregistrement des données. Je ne sais pas si c'est correct car je n'ai pas trouvé de référence ici. (Mais ça marche.)

<!--De faux à vrai autour de la ligne 127-->
<flag name="heap-statistics-enabled" label="Heap Statistics">true</flag>

<!--De faux à vrai autour de la ligne 268-->
    <event path="vm/gc/detailed/object_count">
      <setting name="enabled" control="heap-statistics-enabled">true</setting>
      <setting name="period">everyChunk</setting>
    </event>

2. Obtenir le fichier jfr

Je vais omettre les informations détaillées, mais le but est de spécifier le profil créé précédemment avec le paramètre settings.

jcmd [PID] JFR.start name=MyJfrRec settings=myProfile maxsize=100mb dumponexit=true filename=/tmp/myJfrRec.jfr

Vérifiez l'état de l'enregistrement

jcmd [PID] JFR.check

Sauvegarde des informations enregistrées

jcmd [PID] JFR.dump name=MyJfrRec filename=/tmp/mytasrec.jfr

Fin de l'enregistrement

jcmd [PID] JFR.stop name=MyJfrRec

Après cela, si vous chargez le fichier jfr acquis dans jmc, le graphique sortira avec une bonne impression.

[Site auquel j'ai fait référence] http://waysaku.hatenablog.com/entry/2014/07/22/005304 https://blogs.oracle.com/poonam/clarifying-some-confusion-around-java-flight-recordings

Nous recherchons des ingénieurs. J'espère que vous pouvez voir cela aussi. https://www.nittsu-infosys.com/recruit/2019/index.html

Recommended Posts

Vérifier l'utilisation du tas avec Java Flight Recorder
Dépannage avec Java Flight Recorder
Exécuter l'analyse avec OpenJDK11 Java Flight Recorder + Google Kubernetes Engine
[Java 8] Suppression en double (et vérification en double) avec Stream
J'ai vérifié Java Flight Recorder (JFR)
[Java] Vérification de l'existence des éléments avec Stream
Vérification de la version Java
Enregistreur de vol OpenJDK 11
Processus de vérification Java
Vérifiez le comportement de Java Intrinsic Locks avec bpftrace
Vérifiez la couverture avec Codecov dans la configuration Java + Gradle + Wercker
Installez java avec Homebrew
Vérifier l'implémentation de Java toString ()
Changer de siège avec Java
Installez Java avec Ansible
Téléchargement confortable avec JAVA
Comment utiliser les variables Java
Changer java avec direnv
Téléchargement Java avec Ansible
Raclons avec Java! !!
Construire Java avec Wercker
Conversion Endian avec JAVA
[Java] Vérifiez la différence entre orElse et orElseGet avec IntStream
[Maven] Désactiver l’analyseur d’assembly basé sur .Net avec la vérification des dépendances OWASP [Java]