Es recomendable siempre revisar el estado de consumo de memoria, que utilizan nuestras aplicaciones desplegadas en weblogic, esto con el fin de mantener un consumo óptimo y evitar picos de memoria que nos puedan generar warnings o hasta caídas de la aplicación.

El Garbage Collector es una utilidad del JDK de java, se encarga mantener la memoria lo más limpia posible, recolectando los objetos vacíos o nulos y así evitando que la aplicación se llene de objetos e instancias no utilizadas que puedan ocupar espacio en la memoria de la máquina virtual de java.

Cuando desplegamos una aplicación en una managed server de weblogic, debemos tener en cuenta la cantidad de usuarios que regularmente se conectarán a la aplicación y cuanta memoria puede consumir cada sesión en promedio, así obtendremos un valor estimado de memoria que regularmente se consumirá día con día, esto es necesario para optimizar de la mejor forma el heap size de la máquina virtual de java.

Es necesario entender que el heap size por default de weblogic son 512 mb, este es el tamaño total que utilizará la aplicación desplegada para el almacenamiento de objetos, cuando el valor es muy pequeño y esta a punto de llenarse, el garbage collector se ejecutará muy seguido e intentará evitar que la aplicación consuma toda la memoria del heap size, en caso contrario si el heap size es muy grande, el garbage collector no se ejecutará tan seguido sin embargo siempre mantendrá el ciclo de limpieza de objetos solo que de una manera más pasiva.

Si desea aumentar el tamaño del heap size puede referirse a la siguiente documentación para realizarlo: Cómo aumentar el heap size de un manage server de Weblogic 11g o 12c

Si queremos conocer el estado de consumo de la memoria del JDK que utiliza el managed server de weblogic, podemos verlo ingresando al managed server, en la pestaña Monitoreo -> Rendimiento:

El tamaño se expresa en Bytes, podemos ver el tamaño actual, el espacio disponible, el porcentaje disponible y el tamaño máximo del heap size, adicionalmente podemos ver la cantidad de procesamiento que consume la máquina virtual de java.

Si queremos ejecutar un Full Collector, podemos presionar el botón Garbage Collect y liberar la memoria ocupada del heap size manualmente.

En caso de que queramos revisar el estado de ejecución del Garbage Collector, podemos configurar el managed server para que los registro en un log de la siguiente manera.

Configurar un log para el registro del Garbage Collector

Debemos ingresar al managed server, ir a la pestaña Configuración -> Inicio del servidor, buscar la sección de argumentos y añadir la siguiente línea:

Xloggc:/u01/app/oracle/domains/base_domain/servers/APP/logs/gc.log -verbose:gc -XX:+PrintGCDateStamps -XX:-PrintGCDetails

De manera se se vea así:

Luego, reiniciamos el managed server, esto creará un log en la ruta que colocamos, ahí se registrará toda la información sobre la ejecución y limpieza que realiza el Garbage Collector.

Nota: Es importante aclarar que, este log no registra los procesos de otras aplicaciones en otros managed server, si se necesita conocer el estado de ejecución del GC en otras aplicaciones, se debe aplicar esta misma configuración a los otros managed server.

Por último, en caso de que reiniciemos el managed server por el script en la terminal de comandos, es necesario configurar el script startManagedWeblogic.sh con el siguiente argumento de java, así al iniciar el managed server, también aplicará la configuración del log de registro del GC:

USER_MEM_ARGS="-Xms2048M -Xmx4096M -Xloggc:/u01/app/oracle/domains/base_domain/servers/APP/logs/gc.log -verbose:gc -XX:+PrintGCDateStamps -XX:-PrintGCDetails"
export USER_MEM_ARGS

Deja una respuesta

Tu dirección de correo electrónico no será publicada.