Outils et commandes pouvant être utiles pour le dépannage Java
Outils et commandes pouvant être utiles pour le dépannage Java
――Je l'ai fait pour moi
- https://qiita.com/YN0314/items/5e5c57d52ac1379daf6d
- https://qiita.com/i_matsui/items/4997ebedbdd7a6495509
- https://qiita.com/i_matsui/items/aabbdaa169c6ae51ecb3
- https://qiita.com/i_matsui/items/0d1ae2c7e9d17b6c04e0
- ↑ je l'ai vu en référence à l'article
Liste des processus Java (jps)
Vous pouvez voir la liste des processus de java
$JAVA_HOME/bin/jps
# -Voir plus de détails dans v. Options passées au démarrage, etc.
97312 RemoteMavenServer
97399 WSSampleMain
97398 Launcher
97403 Jps
81229 sbt-launch.jar
97005
97324 NailgunRunner
Dump de pile (jstack)
$JAVA_HOME/bin/jstack $Numéro de processus
# -Vous pouvez l'obtenir même dans le processus qui se bloque en F
heap dump(jmap)
Peut être pris avec la commande jmap
$JAVA_HOME/bin/jmap -histo $Numéro de processus
#Quels objets et combien d'objets sont en mémoire? Quelle est la taille? Sortez
$JAVA_HOME/bin/jmap -heap $Numéro de processus
#Vous pouvez voir la situation du tas
- L'application Java s'arrête lors de la récupération du heapdump *
jcmd
Le gars qui l'a mis ensemble
https://www.ibm.com/developerworks/jp/java/library/j-5things8.html
Outil pratique
JMC
―― Vous pouvez voir la pile et le tas dans l'interface graphique.
jvm-mon
- Vue graphique de l'utilisation du processeur, des processus, des threads et des spécifications de tas sur le terminal
Options Java
Lorsque la JVM tombe en panne dans MOO, le vidage du tas est émis sans autorisation
java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$Répertoire de destination de sortie
Déposer le journal GC
Comment lire le journal
--Quand vous dites GC, autre que Full GC
--Full GC est comme son nom l'indique
-- ~~ K-> ~~ K
est la quantité de mémoire utilisée avant et après
Sortie vers sortie standard
java -verbose:gc
Publié dans un fichier
java -Xloggc:./gclog/gc.log
option
- Heures du jour
- -XX:+PrintGCDateStamps
--Détails
- -XX:+PrintGCDetails
- Rotation du journal
- -XX:+UseGCLogFileRotation
- -XX:GCLogFileSize=N
--Si N est 1K, 1M, 1G, vous pouvez définir le seuil de rotation du fichier journal.
- -XX:NumberOfGCLogFiles=N
--N Les fichiers journaux sont tournés comme 0, 1, 2 ... pour le nombre de fichiers
--Lors de la sortie jusqu'à N, il est remplacé à partir de 0