2010-06-01 15 views
5

Ho una scatola Red Hat con memoria 6G in esecuzione Tomcat e sto cercando di capire quanta memoria ho lasciato sulla scatola. Il problema è, in alto & jconsole mostra una figura (circa 200 M) e il monitor di sistema mostra una figura diversa (circa 2 G). Qualcuno sa qual è la differenza?Perdita di memoria Java/Tomcat in RedHat Linux?

Non sono sicuro che ci sia una perdita di memoria che si verifica qui, ma il più alto consumo di memoria è un processo tomcat che sta acquisendo 2.2G di memoria.

Schermate indicati alt text alt text alt text alt text alt text

Inserita il comando free schermata: alt text

risposta

4

Chiaramente, la parte superiore sta dicendo che Tomcat utilizza solo il 38% della memoria disponibile. Il tuo problema (se c'è un problema) è con qualunque cosa stia usando il rimanente 62% di memoria.

Ho il sospetto che sia in uso per il blocco del disco/il caching del file system. (Esegui il comando free e mi aspetto che venga visualizzato un valore elevato per "memorizzato nella cache" che corrisponde grosso modo alle pagine mancanti.)

Se il tuo sistema ha un numero elevato di pagine nella cache, è un BUONA COSA. Tutti quei blocchi di dischi nella cache renderanno l'accesso in lettura al tuo file system piacevole e veloce. (E se il sistema operativo ha bisogno di pagine fisiche per qualcosa di più importante ... come l'esecuzione di applicazioni ... può recuperarle rapidamente dalla cache del disco.)

+0

Grazie Stephen C, ho aggiunto lo screenshot del comando gratuito. Suppongo di non dovermi preoccupare di questo, in quanto il caching è una buona cosa. – rmartinus

+0

C'è un modo per capire quale processo occupa la cache? – rmartinus

+0

@ black-rocky - no. Il sistema operativo non associa elementi nella cache del blocco del disco con alcun processo. Ma in realtà non importa perché, come ho detto, le pagine nella cache verranno recuperate su richiesta. –

1

monitor del sistema dimostra come la memoria viene utilizzata dal processo tomcat che è 2G [la quantità massima di heap che hai impostato è assegnata].

su Linux provare a confrontarlo con free -m che mostra la memoria disponibile corrente.

1

Che cosa viene visualizzato "free -t"? Mi chiedo se una delle figure includa i dati del file system nella cache (che viene usata memoria nel senso che è fisicamente usata per qualcosa, ma è gratuita nel senso che può essere cancellata in qualsiasi momento se necessario).