problemas parametro memoria maquina configurar aumentar java apache-spark memory-management jvm spark-streaming

maquina - parametro memoria java



Diferencia en memoria usada, comprometida y máxima del montón (1)

Desde el Java Doc de MemoryUsage ,

getUsed es:

la cantidad de memoria utilizada en bytes

getCommitted ()

Devuelve la cantidad de memoria en bytes que se confirma para que la máquina virtual Java la use. Esta cantidad de memoria está garantizada para el uso de la máquina virtual Java.

getMax ()

Devuelve la cantidad máxima de memoria en bytes que se puede utilizar para la administración de la memoria. Este método devuelve -1 si el tamaño máximo de memoria no está definido.

No se garantiza que esta cantidad de memoria esté disponible para la administración de la memoria si es mayor que la cantidad de memoria comprometida. La máquina virtual Java puede fallar en la asignación de memoria, incluso si la cantidad de memoria utilizada no excede este tamaño máximo.

Estoy monitoreando una JVM ejecutora de chispas de una excepción OutOfMemoryException. Utilicé Jconsole para conectar al ejecutor JVM. A continuación se muestra la instantánea de Jconsole:

En la imagen utilizada, la memoria se muestra como 3.8G y la memoria comprometida es 8.6G y la memoria máxima también es 8.6G ¿Podría alguien explicar la diferencia entre la memoria usada y la memoria confirmada o cualquier enlace que lo explique?