Generieren eines Java-Heap-Speicherabbilds oder Thread-Speicherabbilds zur Behebung eines Problems in ePolicy Orchestrator
Technische Artikel ID:
KB73309
Zuletzt geändert am: 2022-03-02 01:46:30 Etc/GMT
Umgebung
McAfee ePolicy Orchestrator (ePO) 5.x, 4.x
Zusammenfassung
Gelegentlich treten Probleme auf, zu deren Behebung ein Java-Heap- oder Thread-Speicherabbild benötigt wird. Beispiele:
- Der ePO-Server hat keinen Speicherplatz mehr zur Verfügung.
- OutOfMemory-Fehler werden im Orion.log auf dem ePO-Server aufgezeichnet.
- Tomcat reagiert nicht mehr oder befindet sich in einem Fehlerzustand.
- Der technische Support fordert ein Heap-Speicherabbild an.
ACHTUNG: Dieser Artikel enthält Informationen zum Öffnen oder Ändern der Registrierung.
- Die folgenden Informationen richten sich an Systemadministratoren. Änderungen an der Registrierung können nicht rückgängig gemacht werden und können einen Systemfehler hervorrufen, wenn sie nicht ordnungsgemäß vorgenommen werden.
- Bevor Sie diesen Vorgang fortsetzen, sollten Sie unbedingt die Registrierung sichern. Außerdem sollten Sie mit dem Wiederherstellungsprozess vertraut sein. Weitere Informationen finden Sie unter http://support.microsoft.com/kb/256986.
-
Führen Sie keine REG-Datei aus, deren Import aus der Registrierung nicht bestätigt ist.
Lösung
1
Wenn ePO einen OutOfMemory-Fehler im Orion.log auf dem ePO-Anwendungs-Server aufzeichnet und Sie ein Java-Heap-Speicherabbild generieren möchten, müssen Sie die Tomcat-/Java-Startparameter ändern:
- Klicken Sie auf Start und dann auf Ausführen, geben Sie regedit ein, und klicken Sie anschließend auf OK.
- Navigieren Sie zu folgendem Registrierungsschlüssel, und erweitern Sie ihn:
32-Bit-Server:
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\MCAFEETOMCATSRV200\Parameters\Java]
64-Bit-Server:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\MCAFEETOMCATSRV200\Parameters\Java]
- Wählen Sie den Unterschlüssel Java aus.
- Doppelklicken Sie im rechten Bereich auf den Wert Optionen, und fügen Sie am Ende die folgenden Wertdaten an:
-XX:+HeapDumpOnOutOfMemoryError
- Klicken Sie auf Start und dann auf Ausführen, geben Sie services.msc ein, und klicken Sie anschließend auf OK.
- Starten Sie den ePO-Anwendungs-Server-Dienst neu.
- Wenn der Fehler erneut auftritt, führen Sie das MER-Tool (Minimum Escalation Requirements) für ePO aus, und fügen Sie den MER-Ergebnissen das Java-Heap-Speicherabbild bei. Weitere Informationen zum Erfassen von ePO-MERs finden Sie in KB72895.
HINWEIS: Standardmäßig wird das Heap-Speicherabbild im Stammverzeichnis des ePO-Installationsverzeichnisses erstellt. Die Datei heißt java_<pid>.hprof, wobei <pid> die Prozess-ID des derzeit ausgeführten tomcat5.exe-Prozesses ist. Bei 64-Bit-Betriebssystemen wird die Speicherabbilddatei *.hprof möglicherweise in den Ordner c:\windows\SysWow64\ anstatt in das Stammverzeichnis des ePO-Installationsverzeichnisses geschrieben. Sie kann sich auch im Ordner server\bin des ePO-Installationsverzeichnisses befinden.
Lösung
2
Wenn ePO den Fehler GC overhead limit exceeded (GC-Aufwandslimit wurde überschritten) im Orion.log auf dem ePO-Anwendungs-Server aufzeichnet und Sie ein Java-Heap-Speicherabbild generieren möchten, müssen Sie die Tomcat-/Java-Startparameter ändern:
- Klicken Sie auf Start und dann auf Ausführen, geben Sie regedit ein, und klicken Sie anschließend auf OK.
- Navigieren Sie zu folgendem Registrierungsschlüssel, und erweitern Sie diesen:
32-Bit-Server:
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\MCAFEETOMCATSRV200\Parameters\Java]
64-Bit-Server:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\MCAFEETOMCATSRV200\Parameters\Java]
- Wählen Sie den Unterschlüssel Java aus.
- Doppelklicken Sie im rechten Bereich auf den Wert Optionen, und fügen Sie am Ende die folgenden Wertdaten an:
-XX:+HeapDumpBeforeFullGC
- Klicken Sie auf Start und dann auf Ausführen, geben Sie services.msc ein, und klicken Sie anschließend auf OK.
- Starten Sie den ePO-Anwendungs-Server-Dienst neu.
- Wenn der Fehler erneut auftritt, führen Sie das MER-Tool (Minimum Escalation Requirements) für ePO aus, und fügen Sie den MER-Ergebnissen das Java-Heap-Speicherabbild bei. Weitere Informationen zum Erfassen von ePO-MERs finden Sie in KB72895.
HINWEIS: Standardmäßig wird das Heap-Speicherabbild im Stammverzeichnis des ePO-Installationsverzeichnisses erstellt. Die Datei heißt java_<pid>.hprof, wobei <pid> die Prozess-ID für den derzeit ausgeführten tomcat5.exe-Prozess ist. Bei 64-Bit-Betriebssystemen wird die Speicherabbilddatei *.hprof möglicherweise in den Ordner c:\windows\SysWow64\ anstatt in das Stammverzeichnis des ePO-Installationsverzeichnisses geschrieben. Sie kann sich auch im Ordner server\bin des ePO-Installationsverzeichnisses befinden.
Lösung
3
So generieren Sie bei Bedarf ein Java-Heap-Speicherabbild mithilfe von JMAP:
- Laden Sie JDK 1.6 oder höher unter http://www.oracle.com/technetwork/java/javase/downloads/index.html herunter, und installieren Sie es auf dem ePO-Server.
- Laden Sie PsExec von der Sysinternals-Website unter http://technet.microsoft.com/de-de/sysinternals/bb897553 herunter, und installieren Sie es auf dem ePO-Server.
- Warten Sie, bis der Fehler auftritt, oder führen Sie die erforderlichen Schritte aus, um das Problem zu reproduzieren.
- Öffnen Sie mit Administratorberechtigungen eine Eingabeaufforderung, und navigieren Sie zu dem Verzeichnis, das die Datei psexec.exe enthält.
- Führen Sie folgenden Befehl aus:
psexec -s "<Pfad zum JDK-Installationsverzeichnis>\bin\jmap.exe" -dump:format=b,file=heap.bin <PID für Tomcat>
Beispiel
psexec -s "C:\Program Files (x86)\Java\jdk1.7.0_01\bin\jmap.exe" -dump:format=b,file=heap.bin 3408
Die Heap-Speicherabbilddatei befindet sich im entsprechenden Ordner:
- 32-Bit: C:\Windows\System32\
- 64-Bit: C:\Windows\SysWOW64\
Lösung
4
So generieren Sie ein Java-Thread-Speicherabbild mithilfe von jstack:
- Laden Sie JDK 1.6 oder höher unter http://www.oracle.com/technetwork/java/javase/downloads/index.html herunter, und installieren Sie es auf dem ePO-Server.
- Laden Sie PsExec von der Sysinternals-Website unter http://technet.microsoft.com/de-de/sysinternals/bb897553 herunter, und installieren Sie es auf dem ePO-Server.
- Warten Sie, bis der Fehler auftritt, oder führen Sie die erforderlichen Schritte aus, um das Problem zu reproduzieren.
- Öffnen Sie mit Administratorberechtigungen eine Eingabeaufforderung, und navigieren Sie zu dem Verzeichnis, das die Datei psexec.exe enthält.
- Führen Sie folgenden Befehl aus:
psexec -s "<Pfad zum JDK-Installationsverzeichnis>\bin\jstack" -l <PID für Tomcat> > <gewünschter Pfad zur Ausgabedatei>\jstack_output.txt
Beispiel
psexec -s "C:\Program Files (x86)\Java\jdk1.7.0_01\bin\jstack.exe" -l 3408 > C:\jstack_output.txt
Haftungsausschluss
Der Inhalt dieses Artikels stammt aus dem Englischen. Bei Unterschieden zwischen dem englischen Text und seiner Übersetzung gilt der englische Text. Einige Inhalte wurden mit maschineller Übersetzung erstellt, die von Microsoft durchgeführt wurde.
|