Esistono strumenti in grado di scaricare Metaspace da un v8 hotspot Java8?Come scaricare Java8 Metaspace dump (non heap dump)
risposta
Sembra che si verifichi una perdita di carico della classe.
Usa
jmap -clstats PID
per scaricare le statistiche classe Loader;jcmd PID GC.class_stats
per stampare le informazioni dettagliate sull'utilizzo della memoria di ciascuna classe caricata. Quest'ultimo richiede-XX:+UnlockDiagnosticVMOptions
.
Anche il dump dell'heap aiuta, poiché ogni classe nel Metaspace ha un'istanza java.lang.Class
corrispondente nell'heap.
Ciao apangin, grazie per il tuo consiglio. Sono stato in grado di scaricare l'intero heap usando il comando jmap -dump, tuttavia non riesco a eseguire il comando jhat per analizzare il file di dump. Il dump dell'heap è di circa 5 GB, e jhat ha funzionato 2 ore senza il completamento, è normale? – czh
jhat eventualmente terminato con spazio heap errore OOM dopo l'esecuzione di circa 2 ore. – czh
@czh [Eclipse Memory Analyzer] (http://www.eclipse.org/mat/) funziona bene anche con discariche di heap di grandi dimensioni. – apangin
In quale forma ti piacerebbe ottenere questo e per cosa? Si noti che i dati in Metaspace non sono oggetti Java. Probabilmente non sei interessato alle strutture interne di HotSpot, ma a qualcos'altro. – apangin
Abbiamo un'applicazione che causa l'errore di Metaspace OOM con 1G di MaxMetaspaceSize e volevo sapere come vengono utilizzate le memorie Metaspace. – czh