Legen Sie fest, dass eine JVM den Heapspeicher ausgibt, wenn OutOfMemoryError ausgelöst wird

8

Ich versuche, die JVM des Servers einzustellen, an dem ich gerade arbeite, so dass ein Heap in der Datei gespeichert wird, wenn ein OOME auftritt.

Ich weiß, dass ich die Option -XX:-HeapDumpOnOutOfMemoryError den JVM-Argumenten irgendwo hinzufügen muss, aber ich kann mir nicht vorstellen, wie das geht.

Zu Ihrer Information: Ich kann über PuTTY auf den Server zugreifen, also suche ich nach einer Befehlszeile dafür.

Die JVM, die ich verwende, ist OpenJDK64-Bit Server VM.

Ich weiß nicht, ob das relevant ist, aber die Anwendung ist eine Kriegsdatei.

%Vor%

BEARBEITEN:

Ich habe etwas gefunden, korrigiere mich, wenn ich falsch liege: Da ich Tomcat benutze, habe ich beschlossen, diese Zeilen in die tomcat.conf-Datei einzufügen:

JAVA_OPTS = -XX: -HeapDumpOnOutOfMemoryError

JAVA_OPTS = -XX: HeapDumpPath = / root / dump

JAVA_OPTS = -Xmx20m

Was denkst du?

    
l0r3nz4cc10 05.04.2011, 15:26
quelle

2 Antworten

25

Diese Option von den HotSpot VM Optionen . Ich würde denken, dass es in der OpenJDK VM dasselbe sein würde, aber lassen Sie mich wissen, wenn es nicht ist.

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<path to dump file>

Sie können eine Speicherzuordnung auch manuell mit jmap erstellen, wenn Sie kennen die Prozess-ID:

jmap -J-d64 -dump:format=b,file=<path to dump file> <jvm pid>

Sie können JHat verwenden, um den Speicherauszug zu analysieren.

jhat <path to dump file>

    
CoolBeans 05.04.2011 15:29
quelle
6

Wie von @CoolBeans erwähnt, sind die folgenden JVM-Optionen:

%Vor%

Um dies in tomcat zu setzen, erstellen Sie eine Datei namens setenv.sh (setenv.bat für Windows) unter TOMCAT_HOME / bin directory & amp; füge die folgende Zeile hinzu

%Vor%

CATALINA_OPTS wird für diese Art von Optionen bevorzugt, da sie nicht auf den Shutdown-Prozess angewendet werden müssen.

    
quelle

Tags und Links