2010-06-01 25 views
5

Tengo una caja de Red Hat con memoria 6G ejecutando Tomcat y estoy tratando de averiguar cuánta memoria me queda en la caja. El problema es que la parte superior & jconsole muestra una figura (alrededor de 200M), y el monitor del sistema muestra una figura diferente (alrededor de 2G). ¿Alguien sabe cuál es la diferencia?Fuga de memoria Java/Tomcat en RedHat Linux?

No estoy seguro de si hay una pérdida de memoria ocurriendo aquí, pero el mayor consumidor de memoria es un proceso Tomcat que está tomando 2.2G de memoria.

imágenes a continuación: alt text alt text alt text alt text alt text

añade el comando de conexión de pantalla: alt text

Respuesta

4

Claramente, arriba le está diciendo que Tomcat solo está utilizando el 38% de la memoria disponible. Su problema (si hay un problema) es con lo que sea que esté usando el 62% de memoria restante.

Sospecho que se está utilizando para el almacenamiento en caché de bloque de disco/sistema de archivos. (Ejecute el comando free y espero que vea un valor alto para "caché" que corresponde aproximadamente al tamaño de las páginas faltantes).

Si su sistema tiene una gran cantidad de páginas en la memoria caché, es BUENA COSA. Todos esos bloques de discos en caché harán que el acceso de lectura a su sistema de archivos sea agradable y rápido. (Y si el sistema operativo necesita páginas físicas para algo más importante ... como ejecutar aplicaciones ... puede recuperarlas rápidamente de la memoria caché del disco).

+0

Gracias Stephen C, he agregado la captura de pantalla gratuita del comando. Supongo que no tengo que preocuparme porque el almacenamiento en caché es algo bueno. – rmartinus

+0

¿Hay alguna forma de averiguar qué proceso está ocupando el caché? – rmartinus

+0

@ black-rocky - no. El sistema operativo no asocia cosas en la memoria caché del bloque de discos con ningún proceso. Pero realmente no importa porque, como dije, las páginas en el caché se reclamarán a demanda. –

1

el monitor del sistema está mostrando cómo la memoria está siendo utilizada por el proceso de Tomcat que es 2G [el tamaño máximo de pila que ha configurado está asignado].

en Linux intente compararlo con free -m que muestra la memoria libre actual.

1

¿Qué muestra "free -t"? Me pregunto si una de las cifras incluye datos del sistema de archivos almacenados en caché (que es memoria utilizada en el sentido en que se usa físicamente para algo, pero libre en el sentido de que se puede borrar en cualquier momento si es necesario).