JVM Compressed Oops
- ¿Qué es un OOP y por qué debe de comprimirse?
Un "oop" u "ordinary object pointer" es un apuntador que administra a objeto. Este es normalmente del mismo tamaño que los apuntadores de la maquina en que reside, esto quiere decir que si es un sistema LP64, 64bits será el tamaño. Como sabemos, en un sistema ILP32 la cantidad máxima de heap que se puede utilizar es menos de 4G, pero por otro lado en un sistema operativo de 64 bits se puede instanciar 5 veces o más dependiendo de cuándo se requiera. Pero, por qué sucede la diferencia de tamaño en uso de memoria? sencillo, por el tamaño de los apuntadores administrados.
-
Mejoras en el uso como opción adicional en Java?
Es un hecho que existen mejoras en el desempeño de la JVM y por ende de la aplicación cuando es requerido un heap muy grande (lo uso un heap de 28G y me gustaría compartir el benchmarking pero antes quiero estructurarlo más). Por otra parte se recomienda ampliamente el tuneo de los parámetros ParallelGCThreads y ParallelCMSThreads ya que requiere mucho poder de procesamiento.
-XX:ParallelGCThreads=XX
-XX:ParallelCMSThreads=XXSi vas a implementar el parámetro, te recomiendo monitorear constantemente los logs del gc que se habilitan de la siguiente manera:
-Xloggc:$CATALINA_HOME/logs/gc.$$.logPara posteriormente validar el comportamiento de la JVM con los siguientes parámetros:
-XX:+PrintVMOptions
-XX:+PrintGCTaskTimeStamps
-XX:+PrintCommandLineFlags
-XX:+PrintGCApplicationConcurrentTime
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCDateStampsWARNING: No usarlo con heaps Mayores a 30G, pues según nuestras pruebas es contraproducente o el beneficio nulo.
- jmanuel_ll's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 6 días 7 horas
hace 6 días 7 horas
hace 6 días 8 horas
hace 25 semanas 2 días
hace 26 semanas 4 días
hace 33 semanas 2 días
hace 1 año 26 semanas
hace 2 años 37 semanas
hace 2 años 41 semanas
hace 2 años 49 semanas