#4sysadmins

Inicio » GNU/Linux » Parámetros Java Virtual Machine JVM

Parámetros Java Virtual Machine JVM

Últimas Entradas

Follow #4sysadmins on WordPress.com

A continuación defino algunos de los parámetros mas importantes a modificar para conseguir un buen rendimiento en nuestra aplicación.

Java

Heap Memory

  • -Xmx representa el tamaño máximo de memoria que pudiera llegar a alcanzar la JVM en la que es ejecutada nuestra aplicación. Si la aplicación necesitase mas de la especificada en este parámetro nos encontraremos con el error OutOfMemoryError.
  • -Xms marca la cantidad de memoria asignada a la JVM cuando iniciamos la aplicación. Este valor suele ajustarse a la mitad o al valor exacto del especificado en Xmx.
  • -Xss indica la cantidad de memoria disponible para cada hilo de ejecución. Un valor bajo en este parámetro puede provocar excepciones del tipo java.lang.StackOverflowError. Debemos de tener cuidado al aumentar el valor de este parámetro si encontramos la excepción anterior, pues un valor alto puede ser contraproducente, ya que podría impedir la creación de nuevos hilos de ejecución.
  • -Xmn controla la cantidad de memoria dinámica que puede consumir el área de memoria de nueva generación. Si definimos un valor bajo, el GC se ejecutará con mas frecuencia (quizás en su mayoría de ejecuciones no estemos limpiando nada) mientras que un valor alto provocará que hilos que no son referenciados de forma persistente y que deberían de ser limpiados, pasen al área de memoria de vieja generación.

Non-Heap Memory

  • XX:PermSize: Tamaño inicial de la memoria permanente (Non-Heap).
  • XX:MaxPermSize: Indica la cantidad máxima de memoria Non-Heap. Un error conocido como consecuencia del valor aquí definido es java.lang.OutOfMemoryError: PermGen space. Podremos evitar este error si aumentamos el valor de este parámetro.

Recolector de basura (GC)

  • XX:+UseSerialGC: Activa el recolector de copia en serie. Utiliza un solo hilo para copiar los objetos que sobreviven en el espacio de Eden (Pool Eden Space) tras un GC, al pool espacio de supervivientes (Pool Survivor Space) y de este al área de memoria de vieja generación (Old Gen) cuando estima que el objeto lleva un tiempo suficiente en la young memory.
  • XX:+UseParallelGC: A diferencia del recolector de copia en serie (SerialGC), ParallelGC utiliza múltiples hilos en paralelo.
  • XX:+UseParallelOldGC: Se combina con el parámetro anterior para utilizar la paralelización en el Old Gen
  • XX:+UseAdaptiveSizePolicy: Se combina junto con los dos parámetros anteriores y sirve para ajustarse al tamaño. Mejora el rendimiento del GC.
  • XX:+UseParNewGC: En este caso el GC trabaja de forma paralela pero dispone de mejoras con respecto al tratamiento de los objetos almacenados en el área de memoria de vieja generación que hace que trabaje de forma concurrente. Este parámetro está obsoleto en versiones 8 y 9 de JDK.

 

Nota: Si quieres aprender mas sobre la JVM y su monitorización puedes acceder a esta otra entrada


Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: