A raíz de una auditoría realizada sobre varios entornos de Alfresco, nos aconsejaron una serie de valores a indicar en la máquina virtual de java. Aprovecho para aclarar algunas de estas variables.
Una posible configuración:
Una posible configuración:
JAVA_OPTS='-Xms1024m -Xmx1536m -Xmn256m -Xss128k -server -d64
-Xloggc:/opt/alfresco/tomcat/logs/gc.log -Xcheck:jni -Xconcurrentio -XX:
+UseParNewGC -XX:+CMSPermGenSweepingEnabled
-Dsun.rmi.dgc.server.gcInterval=600000
-Dsun.rmi.dgc.client.gcInterval=600000 -XX:SurvivorRatio=8
-XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31 -XX:+UseParNewGC
-XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled'
Significado:
-server, solo puede haber una opción en la variable, de esta manera activamos Server Hotspot VM.
-d32/-d64, activa el modelo de datos de 32/64bits, por lo que en un entorno de pruebas puede confirmarse la mejor configuración para nuestros entornos con una JVM, recomendable siempre la última revisión (para solución de incidencias detectadas por el fabricante Sun), específica para nuestra plataforma y activando o desactivando el modelo que interese para aumentar estabilidad o rendimiento.
-Xloggc://logs/gc.log , podemos almacenar un log para las acciones del recolector de basura.
-Xcheck:jni, nos muestra comprobaciones adicionales de funciones jni.
-Xconcurrentio, activa opciones internas adicionales para la sincronización basada en hilos LWP que aumentan el rendimiento.
-Xmx1536m -Xms1024m -Xmn256m, mediante la optimización de estos tres valores especificamos la memoria total de objetos heap inicial y máxima y la memoria young generation, donde se almacenan todos los objetos de la aplicación web desde su primera carga en memoria.
-Xss128k, podemos especificar memoria de pila para cada hilo, si hay problemas relacionados se recomienda aumentar a 256k.
-XX:SurvivorRatio=8, el índice de supervivencia es la proporción entre el espacio de objetos nuevos (eden) y el espacio de supervivientes de la sección de objetos jóvenes del almacenamiento dinámico. Al aumentar este valor se optimiza la JVM para las aplicaciones en las que se crean muchos objetos y se conservan pocos objetos.
-XX:TargetSurvivorRatio=90, permite ocupar el 90% del espacio de supervivientes en lugar del 50%, permitiendo mejor utilización del espacio de memoria superviviente.
-XX:MaxTenuringThreshold=31 -XX:MaxPermSize=192m, con estos valores aumentaremos el rendimiento global de nuestra instalación.
-XX:+UseParNewGC, activa recolección de basura en paralelo en la memoria young generation.
-XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled, con estos valores activamos la recolección de basura concurrente CMS para la memoria permanente, siendo altamente recomendable.
* Propiedades de sistema, con el indicador -D=”valor” indicamos muchas características:
-Dsun.rmi.dgc.server.gcInterval=600000
-Dsun.rmi.dgc.client.gcInterval=600000, con estos valores podemos establecer el intervalo de tiempo en milisegundos para la ejecución del recolector de basura (10 minutos) en la máquina hotspot que hemos elegido.
Aclaración sobre algunas variables:
-Xms1536m : Tamaño inicial de Java heap, por defecto: 4MB
-Xmx1536m : Tamaño máximo de Java heap, por defecto: de 16 a 512 MB
Se suele recomendar que estas dos variables tengan el mismo valor, con objeto de no hacer trabajar a la jvm para agrandar este espacio (ya que le estamos indicando el tamaño que deberá tener desde un principio).
-XX:PermSize=512m : Tamaño inicial de la región permanente
-XX:MaxPermSize=512m : Tamaño máx de la región permanente, por defecto
64MB
-server, solo puede haber una opción en la variable, de esta manera activamos Server Hotspot VM.
-d32/-d64, activa el modelo de datos de 32/64bits, por lo que en un entorno de pruebas puede confirmarse la mejor configuración para nuestros entornos con una JVM, recomendable siempre la última revisión (para solución de incidencias detectadas por el fabricante Sun), específica para nuestra plataforma y activando o desactivando el modelo que interese para aumentar estabilidad o rendimiento.
-Xloggc:/
-Xcheck:jni, nos muestra comprobaciones adicionales de funciones jni.
-Xconcurrentio, activa opciones internas adicionales para la sincronización basada en hilos LWP que aumentan el rendimiento.
-Xmx1536m -Xms1024m -Xmn256m, mediante la optimización de estos tres valores especificamos la memoria total de objetos heap inicial y máxima y la memoria young generation, donde se almacenan todos los objetos de la aplicación web desde su primera carga en memoria.
-Xss128k, podemos especificar memoria de pila para cada hilo, si hay problemas relacionados se recomienda aumentar a 256k.
-XX:SurvivorRatio=8, el índice de supervivencia es la proporción entre el espacio de objetos nuevos (eden) y el espacio de supervivientes de la sección de objetos jóvenes del almacenamiento dinámico. Al aumentar este valor se optimiza la JVM para las aplicaciones en las que se crean muchos objetos y se conservan pocos objetos.
-XX:TargetSurvivorRatio=90, permite ocupar el 90% del espacio de supervivientes en lugar del 50%, permitiendo mejor utilización del espacio de memoria superviviente.
-XX:MaxTenuringThreshold=31 -XX:MaxPermSize=192m, con estos valores aumentaremos el rendimiento global de nuestra instalación.
-XX:+UseParNewGC, activa recolección de basura en paralelo en la memoria young generation.
-XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled, con estos valores activamos la recolección de basura concurrente CMS para la memoria permanente, siendo altamente recomendable.
* Propiedades de sistema, con el indicador -D
-Dsun.rmi.dgc.server.gcInterval=600000
-Dsun.rmi.dgc.client.gcInterval=600000, con estos valores podemos establecer el intervalo de tiempo en milisegundos para la ejecución del recolector de basura (10 minutos) en la máquina hotspot que hemos elegido.
Aclaración sobre algunas variables:
-Xms1536m : Tamaño inicial de Java heap, por defecto: 4MB
-Xmx1536m : Tamaño máximo de Java heap, por defecto: de 16 a 512 MB
Se suele recomendar que estas dos variables tengan el mismo valor, con objeto de no hacer trabajar a la jvm para agrandar este espacio (ya que le estamos indicando el tamaño que deberá tener desde un principio).
-XX:PermSize=512m : Tamaño inicial de la región permanente
-XX:MaxPermSize=512m : Tamaño máx de la región permanente, por defecto
64MB
No hay comentarios:
Publicar un comentario