Meine Webanwendung mit Java eines Tages stürzte ab und erzeugte einen großen Core-Dump (5,5 GB). Ich habe versucht, IBM Thread and Monitor Dump Analyzer for Java zu verwenden, um diese Core-Dump zu analysieren, aber während die Core-Dump zu lesen, die Konsole sagte:Wie analysiert man einen großen Core-Dump, der generiert wird, wenn JVM abstürzt
Exception in thread "Thread-0" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:569)
at java.lang.StringBuffer.append(StringBuffer.java:369)
at java.io.BufferedReader.readLine(BufferedReader.java:370)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at com.ibm.jinwoo.thread.FileTask.processThreadDump(FileTask.java:1858)
at com.ibm.jinwoo.thread.FileTask$ActualTask.<init>(FileTask.java:215)
at com.ibm.jinwoo.thread.FileTask$1.construct(FileTask.java:1368)
at com.ibm.jinwoo.thread.ThreadHandler$1.run(ThreadHandler.java:31)
at java.lang.Thread.run(Thread.java:745)
Es scheint, dass die Core-Datei zu groß ist, mit diesem Werkzeug zu analysieren. Das Erhöhen der Heap-Größe mit der Option -Xmx10g
hat nicht funktioniert.
Welches Werkzeug kann verwendet werden, um solch eine große Kerndatei zu analysieren?
2016-08-17 13:07 Aktualisiert: Ich habe versucht, Eclipse-MAT-Tool zu verwenden, aber ich stellte einen folgenden Fehler, wenn ich die Dump-Datei zu lesen versucht.
Muss ich eine Art Vorverarbeitung durchführen, damit die Speicherauszugsdatei für das Eclipse MAT-Tool lesbar wird?
Basierend auf der Größe der Datei ist dies wahrscheinlich entweder eine Heap-Dump-Datei oder eine Systemkerndatei. keine Java-Core-Datei (was das von Ihnen verwendete Tool analysiert). Blick auf den oberen Zeilen der Datei, eine Java-Core-Datei ist Text und wird mit so etwas wie starten: 0SECTION TITEL Subkomponente Dump Routine NULL =================== ============ 1TICHARSET 1252 1TISIGINFO Dump vom Benutzer angefordert (00100000) Durch com.ibm.jvm.Dump.JavaDump 1TIDATETIME Datum: 08.08.2016 um 00:16:33 Ein Heap-Dump wäre eine Binärdatei (phd), die viel größer ist. – user3745362