Ho provato questo Get a heapdump on JVM from Tomcat 6 ma non funziona per me, ci sono altri modi per ottenere il dump dell'heap dal server tomcat? Grazie in anticipo!modi come ottenere heap dump dall'esecuzione di tomcat 7
risposta
Il modo più semplice per ottenere heap dump è utilizzare jmap. Sulla macchina con processo java eseguire il comando jmap. Esempio di utilizzo:
jmap -dump:file=/mnt/heapdump_2013-04-01.data 29842
uso jps sapere java Pid.
Inoltre è possibile effettuare lo heap dump tramite jvisualvm. È possibile connettersi alla macchina remota tramite jmx o jstatd. È possibile eseguire heapdump e archiviare sul computer remoto.
Per analizzare i cumuli di heap è possibile avvisare: MAT. Strumento molto potente che ti consente di comprendere rapidamente i problemi. Puoi trovare here inro per il MAT.
Se non si vuole fermare l'applicazione per un lungo periodo si può fare dump binario (You can use gcore or gdb). E puoi use jmap to analyze gdb dump. Ulteriori informazioni sono disponibili su atlassian blog. Attenti allo someissues.
Potrebbe essere necessario utilizzare "sudo" – th3morg
Un altro modo oltre al "Dump heap" -Button di jvisualvm è tramite l'interfaccia JMX. In questo modo puoi persino specificare dove archiviare il dump.
connettersi al server JMX di tomcat utilizzando jconsole o jvisualvm con il plug-in JMX. Quindi ottenuto a com.sun.management
->HotSpotDiagnotic
->Operations
. Accanto a dumpHeap
inserisci i due parametri. Dalla documentazione di Oracle (vedi here):
Parametri:
OutputFile - Il nome del file dipendente dal sistema
dal vivo - se vera discarica solo vivere gli oggetti, vale a dire oggetti che sono raggiungibili dagli altri
Quindi premere dumpHeap
e osservare il blocco della macchina virtuale per un po 'di tempo durante la scrittura del dump.
Mi raccomando visual VM http://visualvm.java.net/ È uno strumento tutto in uno che può connettersi a tomcat, creare e leggere heap dump, creare dump di thread, cpu e campionatore di memoria.
Se si utilizza il nuovo jdk 1.7, VisualVM è già contenuto nella cartella jdk.
- 1. Errore di dump heap su Centos 64bit e openjdk 7
- 2. Problemi di java heap space in Tomcat 7
- 3. Dump thread di Tomcat
- 4. Come scaricare Java8 Metaspace dump (non heap dump)
- 5. Richiedi java heap dump (core dump) dall'interno dell'applicazione
- 6. Posso ottenere che Tomcat sia in esecuzione come servizio per eseguire il dump dell'heap?
- 7. Tomcat 7 Manager - come autenticarsi?
- 8. Elaborazione asincrona Tomcat 7
- 9. embedded Tomcat 7 lento confrontare Tomcat 6
- 10. Tomcat 7 tomcat-users gestore-esempio di script per/deploy
- 11. SSL in Tomcat 7
- 12. Tomcat 7 javax.el.ELException
- 13. Tomcat 7 e ScheduledExecutorService.shutdown
- 14. diversi modi di ottenere l'EntityManager
- 15. Utilizzo del parametro HeapDumpOnOutOfMemoryError per heap dump per JBoss
- 16. Come configurare Tomcat 7 su Synology
- 17. Controllare Tomcat 7 Version linux
- 18. come implementare Socket.io su Tomcat 7
- 19. Incluso DB2JCC4 in Tomcat 7
- 20. Dump dell'heap di avvio di Java 7 senza JDK installato
- 21. Tomcat 7 smette di ricevere richieste HTTP
- 22. Opzione Xframe in tomcat 7
- 23. Impossibile l'installazione di servizio 'Tomcat 7'
- 24. Come modificare il fuso orario del server di Tomcat 7?
- 25. Avvia Tomcat all'avvio di Windows 7?
- 26. Tomcat 6 in Windows 7
- 27. Percorso cookie di sessione Tomcat 7
- 28. Qual è la directory Tomcat/temp in Tomcat 7?
- 29. Tomcat 7 sovrascrive tomcat-users.xml quando si utilizza Eclipse
- 30. Tomcat 7 in Eclipse Indigo: impossibile avviare Tomcat
Qual è il problema che hai incontrato nel tentativo di eseguire il dump dell'heap? – Taky
Il collegamento si limita a eseguire il dump dell'heap quando JVM si esaurisce a causa della memoria insufficiente. Non ti permette di fare heapdump, quando vuoi. Ma è ancora un'opzione molto utile per te. – Taky