memoria maquina aumentar java jvm jvm-arguments

maquina - aumentar memoria java



XX:+HeapDumpOnOutOfMemoryError Límite máximo de tamaño de archivo (2)

La opción de línea de comando -XX:+HeapDumpOnOutOfMemoryError le dice a la VM de HotSpot que genere un volcado de -XX:+HeapDumpOnOutOfMemoryError dinámico cuando no se puede cumplir una asignación del almacenamiento dinámico de Java o la generación permanente. No hay gastos generales en ejecución con esta opción, por lo que puede ser útil para sistemas de producción donde OutOfMemoryError tarda mucho tiempo en aparecer.

Para resolver el problema específico al que se enfrenta, puede usar una de las siguientes medidas correctivas:

Medida 1: XX: HeapDumpSegmentSize

La opción -XX: HeapDumpSegmentSize especifica un tamaño de segmento apropiado al generar un volcado de hendidura HPROF segmentado.

Formato

-XX: HeapDumpSegmentSize = tamaño [k | K] [m | M] [g | G]

Ejemplo

java -XX:+HeapDumpOnOutOfMemory -XX:HeapDumpSegmentSize=512M myApp

Valores predeterminados
1 GB

Medida 2 -XX: SegmentedHeapDumpThreshold

La opción -XX: SegmentedHeapDumpThreshold genera un volcado de montón segmentado (archivo .hprof, formato 1.0.2) cuando el uso del montón es mayor que el tamaño especificado.

El formato de volcado de HPROF segmentado es necesario para generar correctamente volcados de almacenamiento dinámico que contienen más de 4 GB de datos. Si el valor de la opción -XX: SegmentedHeapDumpThreshold se establece en más de 4 GB, los volcados del heap no se pueden generar correctamente.

Formato
-XX: SegmentedHeapDumpThreshold = tamaño

Ejemplo

java -XX:SegmentedHeapDumpThreshold=512M myApp

Valor por defecto
2 GB

Estoy ejecutando un proceso de Java con la bandera JVM XX:+HeapDumpOnOutOfMemoryError y viendo el siguiente resultado:

java.lang.OutOfMemoryError: Java heap space Dumping heap to /local/disk2/heaps/heapdump.hprof ... Dump file is incomplete: file size limit

¿Hay alguna forma de evitar este problema?


Una razón simple para ese mensaje de error exacto puede ser:
No había suficiente espacio en el directorio de volcado.

El directorio de volcado es el directorio de trabajo actual si no se modifica a través del parámetro JVM -XX: HeapDumpPath (ver documentación ).