OpenJ9 Tomcat no se iniciará con una alta opción montón -Xmx

Andreas Hartmann:

Tengo una aplicación primavera se ejecuta en un Tomcat 9.0.6 en Linux 64. Debido a que se necesita una gran cantidad de memoria, me gustaría probar el OpenJ9 JVM que supuestamente es más eficiente en ese sentido (límite actual del montón con Hotspot: -Xmx128G) . He instalado el 64 bits adoptopenjdk-8-jdk-openj9:

/usr/lib/jvm/adoptopenjdk-8-jdk-openj9/bin/java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
Eclipse OpenJ9 VM (build openj9-0.14.2, JRE 1.8.0 Linux amd64-64-Bit Compressed References 20190521_315 (JIT enabled, AOT enable
OpenJ9   - 4b1df46fe
OMR      - b56045d2
JCL      - a8c217d402 based on jdk8u212-b04)

Comenzando el gato provoca el error siguiente:

This JVM package only includes the '-Xcompressedrefs' configuration. Please run the VM without specifying the '-Xnocompressedrefs' option or by specifying the '-Xcompressedrefs' option.

Después de configurar esta opción me sale el siguiente error:

JVMJ9GC028E Option too large: '-Xmx'
JVMJ9VM015W Initialization error for library j9gc29(2): Failed to initialize
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Documentación no es tan clara, pero he encontrado esto: https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.vm.80.doc/docs/mm_gc_compressed_refs.html

Compressed references are used by default on a 64-bit IBM SDK when the value of -Xmx, which sets the maximum Java heap size, is in the correct range. Start of changes for service refresh 2 fix pack 10On AIX®, Linux and Windows systems, the default range is 0 - 57 GB. For larger heap sizes, you can try to use compressed references by explicitly setting -Xcompressedrefs.End of changes for service refresh 2 fix pack 10 However, larger heap sizes might result in an out of memory condition at run time because the VM requires some memory at low addresses. You might be able to resolve an out of memory condition in low addresses by using the -Xmcrs option.

Así que, básicamente, al menos esta versión del JDK sólo admite compressedrefs, y con el fin de utilizar eso, debe configurar manualmente desde mi -Xmx está por encima del rango en el que está activado por defecto, pero que falla porque mi sistema operativo ya asignados a mucho de <rangos 4 GB de memoria, pero algunos se necesita para utilizar compressedrefs. Ya que nunca puedo garantizar que esto no será el caso, ¿hay alguna manera de que pueda utilizar sin OpenJ9 compressedrefs? Y que incluso se obtendrán los beneficios en términos de consumo de memoria? O ¿hay alguna manera de que pueda utilizar compressedrefs con ajustes muy altos Xmx?

También probé configurar esta opción, pero no sirvió de nada: https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/openj9/xmcrs/index.html?view=embed

¿Cómo puedo encontrar el tamaño correcto para ello? 1G y 64m fracasaron. Aunque encuentre en la posición correcta, ¿cómo este valor garantía de que el sistema operativo no ha asignado ya todas las direcciones de memoria más bajos?

Andreas Hartmann:

He encontrado esta acumulación que permite noncompressedrefs y por lo tanto resuelve mis problemas: https://adoptopenjdk.net/releases.html?variant=openjdk8&jvmVariant=openj9#linuxxl

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=313111&siteId=1
Recomendado
Clasificación