2012-07-09 16 views
7

De acuerdo con la documentación de JVM 6, las máquinas de clase de servidor reciben de forma predeterminada un tamaño de almacenamiento dinámico inicial como 1/4 de RAM o 1 GB. Teniendo en cuenta que nuestro servidor Solaris 64Bit tiene 64 GB, el tamaño de almacenamiento dinámico inicial estará predeterminado en 256MB. Por lo tanto, necesito establecer manualmente el tamaño del montón usando el parámetro XMX para 4GB. Sin embargo, cuando agrego "-Xmx4096M", Tomcat no se inicia. Aquí está el mensaje de error:¿Cómo configurar un gran tamaño de almacenamiento dinámico de JVM?

Invalid maximum heap size: -Xmx4096M 
The specified size exceeds the maximum representable size. 
Could not create the Java virtual machine. 

¿Cuál debería ser mis parámetros de línea de comando para permitir mi montón de crecer hasta 4 GB?

+0

¿Qué sistema operativo está utilizando? Algunos SO más antiguos no permiten que los procesos tengan más de 2 gigas. – John

+0

Solaris (Acabo de actualizar la pregunta anterior) – Pomario

+1

¿está ejecutando un jvm de 64 bits? –

Respuesta

7

Gracias por toda su contribución, muchachos! Sin embargo, la salida de mi java -version menciona mixed mode lo que significa que es de 64 bits. La solución real es agregar -d64 para forzar que se ejecute en 64 bits y, por lo tanto, asignar los 4 GB.

+7

El hecho de que se observaba El modo "mixto" no está relacionado con el hecho de que tenga una JVM de 32 bits o 64 bits. Solo significa que su JVM mezcla dos modos de ejecución "compilados" e "interpretados". –

4

Mi solución basada en los comentarios a la pregunta: está utilizando JVM de 32 bits, por lo tanto, no puede abordar más de 4 GB (no incluido). Intente instalar la versión de 64 bits

4

Según la salida de java -version, se instala una JVM de 32 bits. Si fue uno de 64 bits, debería obtener algo como Java HotSpot(TM) 64-Bit Server VM.

Intente instalar una JVM de 64 bits y esto resolverá su problema.

0

Uso -Xmx1024M -XX: MaxPermSize = 256M

+0

El uso de formato de código, y una línea de comando de ejemplo completa, haría que esta respuesta sea mucho mejor. – jpaugh

Cuestiones relacionadas