On m'a dit que je pouvais ajouter le paramètre -XX:+HeapDumpOnOutOfMemoryError
à mes options de démarrage JVM dans mon script de démarrage JBoss pour obtenir un vidage mémoire lorsque nous rencontrions une erreur de mémoire insuffisante dans notre application. Je me demandais où ces données sont déversées? Est-ce juste à la console, ou à un fichier journal? Si c'est juste pour la console, que faire si je ne suis pas connecté au serveur Unix via la console?Utilisation du paramètre HeapDumpOnOutOfMemoryError pour le vidage de tas pour JBoss
Répondre
Voici ce que Oracle's documentation a à dire:
Par défaut, le vidage de tas est créé dans un fichier appelé Java_ pid .hprof dans le répertoire de travail de la machine virtuelle, comme dans l'exemple ci-dessus . Vous pouvez spécifier un autre nom de fichier ou un répertoire avec l'option
-XX:HeapDumpPath=
. Pour l'exemple-XX:HeapDumpPath=/disk2/dumps
provoquera le vidage de tas généré dans le répertoire/disk2/dumps
.
Ceci liste également toutes les options liées aux performances de la machine virtuelle: http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp#PerformanceTuning –
Important! Les indicateurs HeapDump sont disponibles uniquement à partir de Java 1.5.0_07. – rustyx
Il est également important de reconnaître que la JVM ne remplacera PAS une pile de mémoire existante dans 'HeapDumpPath', vous verrez quelque chose de similaire à' "Impossible de créer /tmp/java_pidpid.hprof: Fichier existe" 'dans votre sortie standard. Assurez-vous de déplacer votre fichier de vidage hors du chemin de vidage pour libérer la place pour tous les futurs fichiers de vidage; et utiliser l'espace réservé '
Vous pouvez afficher cette image à partir de la console UNIX.
Le chemin d'accès au tas de mémoire sera fourni en tant que variable juste après l'endroit où vous avez placé la variable mentionnée.
.: par exemple
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${DOMAIN_HOME}/logs/mps"
Vous pouvez voir la décharge de la console sur le chemin mentionné.
J'ai eu du mal à déchiffrer ce que l'on entend par "répertoire de travail de la machine virtuelle". Dans mon exemple, j'utilisais le programme Java Service Wrapper pour exécuter un fichier jar - les fichiers de vidage étaient créés dans le répertoire où j'avais placé le programme wrapper, par ex. c: \ myapp \ bin. La raison pour laquelle j'ai découvert cela est que les fichiers peuvent être assez volumineux et qu'ils ont rempli le disque dur avant que je découvre leur emplacement.
Si vous n'utilisez pas l'option "-XX: HeapDumpPath", dans le cas de JBoss EAP/As par défaut, le fichier de vidage de tas sera généré dans le répertoire "JBOSS_HOME/bin".
- 1. Comment enregistrer le tas (vidage vers un fichier) dans Eclipse?
- 2. Aide pour le vidage de la pile du serveur SQL
- 3. Différence entre javacore, vidage de threads et vidage de tas dans Websphere
- 4. Utilisation d'amis avec des classes de base pour Boost Paramètre
- 5. Quel est le paramètre de compression GZIP optimal pour IIS?
- 6. activer HeapDumpOnOutOfMemoryError à l'exécution
- 7. Debug tas/STL débogage équivalent pour GCC?
- 8. Que signifient ces étranges noms de classe dans un vidage de tas Java?
- 9. Utilisation de la mémoire de JBoss?
- 10. Bibliothèque pour lire un vidage MySQL?
- 11. Utilisation de crochets Mercurial pour créer/charger des sauvegardes de bases de données pour le versionnement
- 12. Exception de vidage de noyau pour l'exception Rails
- 13. Pouvez-vous extraire la valeur des chaînes à partir d'un vidage de tas java IBM PHD?
- 14. ASP - Utilisation du paramètre Function pour faire référence au jeu d'enregistrements
- 15. Utilisation de MOQ pour tester le contrôleur
- 16. Utilisation du validateur de champ obligatoire pour désactiver ListBox
- 17. Utilisation de npgsql pour appeler une fonction qui prend le caractère comme paramètre
- 18. Utilisation du libellé ASP.NET comme paramètre de rapport SSRS
- 19. Utilisation des écrans tactiles pour le contrôle du jeu
- 20. Utilisation du framework CSS jQuery.UI pour le style DIV
- 21. Utilisation du solveur itinérant pour déterminer le chemin d'accès hamiltonien
- 22. Utilisation du proxy Apache pour acheminer le trafic vers tinyproxy
- 23. Arrêt du serveur JBoss
- 24. Java tas d'espace dans netbeans .. mais j'ai déjà augmenté la taille du tas!
- 25. Configuration personnalisée pour les applications JBoss?
- 26. JVisualVM problème avec la surveillance JBoss
- 27. Utilisation de Html.BeginForm pour publier sur le contrôleur en cours
- 28. Java: suffisamment de tas libre pour créer un objet?
- 29. Affectation de la valeur du paramètre au xsl: pour chaque
- 30. Comment faire pour obtenir une trace de pile à partir du fichier de vidage sous Windows
C'est le dossier actuel, je suppose. –