Par défaut, le vidage du tas est créé dans un fichier nommé java_pidpid. hprof dans le répertoire de travail de la VM, comme dans l'exemple ci-dessus. Vous pouvez spécifier un nom de fichier ou un répertoire alternatif avec l'option -XX:HeapDumpPath=.
Où se trouve le fichier de vidage du tas ?
L'emplacement varie en fonction de l'environnement, mais ces fichiers apparaissent généralement dans: C:\Windows\System32. ou C:\Windows\SysWOW64.
Lorsque le vidage de tas est créé ?
À partir de la version 20180917, lorsqu'une erreur de mémoire insuffisante est rencontrée, un vidage de mémoire de tas est automatiquement créé (Le paramètre -XX:+ HeapDumpOnOutOfMemoryError est ajouté au fichier conf /jvm.
Comment puis-je obtenir un vidage de tas sous Linux ?
Pour les machines Linux, vous pouvez utiliser des variétés de commandes comme ps -A | grep java ou netstat -tupln | grep java ou top | grep java, dépend de votre application. Ensuite, vous pouvez utiliser la commande comme jmap -dump:format=b, file=sample_heap_dump. hprof 1234 où 1234 est le PID.
Comment obtenir un vidage de tas sur Outofmemoryerror ?
Pour s'assurer qu'un vidage de tas est généré sur OOM pour Clarity:
- Connectez-vous à CSA (ou ouvrez properties.xml pour chaque serveur du cluster):
- Ajoutez la chaîne d'argument suivante dans les paramètres JVM du service d'application ou/et du service bg: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=\. hprof.
- Redémarrer les services.