Tengo un problema muy extraño con una aplicación Java que se ejecuta bajo Tomcat.Depuración de una pérdida de memoria extraña - Java/Tomcat
Intentamos actualizar el código de producción de un recién producido en un sprint de 1 semana, la aplicación ha estado funcionando durante meses sin interrupciones y luego este nuevo código hace que nuestros servidores Linux comiencen a intercambiarse después de un tiempo.
Lo más extraño es que cuando se mira a VisualVM para el uso de memoria, nunca excede el tamaño máximo de almacenamiento dinámico, la JVM no arroja un OutOfMemory, la máquina solo comienza a intercambiar y la JVM sigue ejecutándose incluso después.
Parece que está perdiendo memoria de algún lado, parece que proviene del nuevo código pero es extraño que no esté dentro de la JVM, ¿alguna idea sobre cómo depurar eso?
Gracias!
Puede ser útil mostrar el código. – soandos
Cualquier código nativo involucrado (ya sea a través de JNI o JNA), o es este puro Java? – QuantumMechanic
¿Podría ser debido a archivos mapeados en memoria? ¿Qué muestra 'top' para el uso de memoria del proceso' java'? –