dump di memoria molto più piccolo di memoria disponibile
-
25-09-2019 - |
Domanda
Ho un Tomcat Application Server che è configurato per creare un dump di memoria su OOM, e viene avviato con Xmx1024m, in modo da un Gigabyte dovrebbe essere disponibile a lui.
Ora ho trovato una tale discarica e contiene solo 260MB della memoria non trattenuto. Come è possibile che la discarica è molto più piccola rispetto alla dimensione che dovrebbe avere a disposizione?
Soluzione
PermGen è gestito in modo indipendente al mucchio e può essere eseguito anche quando c'è un sacco di memoria libera complessiva. Alcuni framework web (in particolare JSF) sono veri e propri maiali e mentre facilmente causare la configurazione di default per esaurirsi. Si può essere aumentato con -XX: MaxPermSize = ### m
Ricordate lo spazio del sistema è limitato dalla somma di heap e PermGen, in modo da poter consumare meno risorse complessive prima di iniziare a ricevere l'impossibile creare un'eccezione OOM thread nativo se non diminuire mucchio dalla quantità PermGen è aumentato.
Altri suggerimenti
Solo informazioni sull'uso di memoria allocata verrà scaricato un file. Un heap dump non è un'immagine binaria del mucchio, contiene informazioni sui tipi di dati, ecc e può superare la memoria disponibile.