Mir wurde gesagt, dass ich die -XX:+HeapDumpOnOutOfMemoryError
Parameter zu meinen JVM Startoptionen zu meinem JBoss Start-Skript hinzufügen können, um einen Heap-Dump zu bekommen, wenn wir einen Speicherfehler in unserer Anwendung erhalten. Ich habe mich gefragt, wo diese Daten verloren gehen? Ist es nur für die Konsole oder für eine Protokolldatei? Wenn es nur an der Konsole ist, was passiert, wenn ich nicht über die Konsole am Unix-Server angemeldet bin?Verwenden HeapDumpOnOutOfMemoryError Parameter für Heap-Dump für JBoss
Antwort
Hier ist, was Oracle's documentation zu sagen hat:
standardmäßig die Heapdump in eine Datei namens erstellt java_ pid .hprof im Arbeitsverzeichnis der VM, wie in dem Beispiel oben . Sie können einen alternativen Dateinamen oder das Verzeichnis mit der Option
-XX:HeapDumpPath=
angeben. Für Beispiel-XX:HeapDumpPath=/disk2/dumps
wird dazu führen, dass der Heapspeicherauszug im/disk2/dumps
Verzeichnis generiert wird.
Hier werden auch alle VM-Leistungsoptionen aufgeführt: http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp#PerformanceTuning –
Wichtig! Die HeapDump-Flags sind nur von Java 1.5.0_07 verfügbar. – rustyx
Außerdem ist es wichtig zu erkennen, dass die JVM einen vorhandenen Heap-Dump NICHT im 'HeapDumpPath' überschreibt. Sie werden etwas sehen, das ähnlich ist wie" /tmp/java_pidpid.hprof: Datei existiert "in Ihrer Standardausgabe. Stellen Sie sicher, dass Sie Ihre Dump-Datei aus dem Dump-Pfad verschieben, um den Weg für zukünftige Dump-Dateien frei zu machen. und verwenden Sie den '
Sie können diesen Speicherauszug von der UNIX-Konsole aus anzeigen.
Der Pfad für den Heapspeicherauszug wird direkt nach dem Platzieren der Variablen als Variable bereitgestellt.
Z. B .:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${DOMAIN_HOME}/logs/mps"
Sie können auf dem genannten Weg der Müllkippe von der Konsole anzuzeigen.
Ich fand es schwierig zu entziffern, was mit "Arbeitsverzeichnis der VM" gemeint ist. In meinem Beispiel verwendete ich das Java Service Wrapper-Programm, um ein jar auszuführen - die Speicherauszugsdateien wurden in dem Verzeichnis erstellt, in dem ich das Wrapper-Programm abgelegt hatte, z. c: \ myapp \ bin. Der Grund, warum ich das entdeckt habe, liegt darin, dass die Dateien ziemlich groß sein können und sie die Festplatte füllten, bevor ich ihren Standort entdeckte.
Wenn Sie nicht die Option "-XX: HeapDumpPath" verwenden, wird im Falle von JBoss EAP/As die Heap-Dump-Datei standardmäßig im Verzeichnis "JBOSS_HOME/bin" generiert.
- 1. todsichere HeapDumpOnOutOfMemoryError
- 2. Jboss 6 für jee5
- 3. Einstellung für JBoss-Transaktionszeitlimit?
- 4. Jboss für Anfänger
- 5. Was ist die beibehaltene Größe für ein Objekt auf Heapdump?
- 6. aktivieren HeapDumpOnOutOfMemoryError in Runtime
- 7. Verwenden von JBoss Cache als Verzeichnis für Apache Lucene
- 8. Kann JBoss RESTEasy Web Services x509-Zertifikate für Sicherheit verwenden?
- 9. Servlet Spec für Jboss 4.2.3
- 10. Bereitstellen von Berichten für JBoss
- 11. Gzip-Komprimierung für Jboss aktivieren
- 12. Verwenden typedef für Parameter durch Verweis
- 13. XSL, XML als Parameter für Vorlage verwenden
- 14. Jboss Schritt für Schritt eingestellt heiß bereitstellen
- 15. Parameter für GC (CMS) anpassen
- 16. NodeJS USR2 Signal tötet Prozess heapdump
- 17. Optionale Parameter für Schnittstellen
- 18. Benutzerdatenverschlüsselung für eine Java-Webanwendung (Spring/Jboss)
- 19. Schriftfarbe für Parameter/Variablentyp
- 20. Optionale Parameter für Typparameter?
- 21. Standardwerte für AdoNetAppender Parameter
- 22. als Parameter für Benutzerprofil
- 23. Fehler: Speicherklasse für Parameter
- 24. Beschreibung für Webservice-Parameter
- 25. Zusätzliche Parameter für FileSystemEventHandler
- 26. Wavetable Parameter für Audiokit
- 27. Parameter Syntax für „ProcessBuilder.command“
- 28. Parameter für QgsNMEAConnection
- 29. Parameter für Callback-Funktion übergeben
- 30. Kann String.Empty nicht als Standardwert für einen optionalen Parameter verwenden
Das ist der aktuelle Ordner, denke ich. –