2010-06-29 25 views
11

Tengo una petición para instalar un servidor Linux (preferiblemente Ubuntu servidor de 64 bits), y Java (64 bits) en el siguiente producto:cómo puede JVM utilizar más de 4 GB de memoria

  • Intel Core2Quad Q8200 - 2.33 GHz
  • 8 GB de memoria rAM DDR2
  • 2x 320 GB de disco duro SATA en RAID 1 espejo blando (espejo)

El problema es cómo configurar el sistema y Java JVM porque necesito usar más de 4 GB de memoria.

No se puede distribuir en muchas máquinas virtuales. Hay datos de más de 4 GB de tamaño y tiene que estar en la memoria porque el disco duro es lento y el rendimiento es crítico.

Esta es una pregunta de configuración y rendimiento y estoy interesado en los comentarios si alguien tiene experiencia.

muchas gracias por ayudarme en esto ...

+1

No olvide que necesita n dejar un poco de memoria para el no-montón y el sistema operativo. 4 GB es probablemente el límite que puede hacer con seguridad en esta máquina. Por cierto: la memoria es bastante barata en estos días, podrías considerar obtener más si realmente la necesitabas. es decir, el rendimiento es realmente crítico. –

+0

Sí, esta especificación es bastante conservadora para una estación de trabajo dev, no importa un servidor de alto rendimiento. – skaffman

Respuesta

8

Un 64 bits JVM no debe tener ningún problema en absoluto con montones gigantes, sin duda, mucho más grande que la memoria RAM disponible. Sólo aumentar el tamaño de la pila cuando se inicia la JVM, por ejemplo:

java -Xmx6g 

Usted solía tener que especificar el indicador de 64 bits (con -d64), pero no creo que esto es necesario más.

Las JVM de 32 bits pueden gestionar algo así como 3 GB de almacenamiento dinámico.

+0

Minit nitpick: te refieres a 'java -Xmx6g' (o 'java -Xmx6144m'). Especificar el tamaño como Gb dará lugar a un error de "tamaño de pila máximo no válido". – Confusion

+0

@Confusion: Muy bien, gracias por la corrección. – skaffman

+0

le agradeció la corrección hace una hora pero no corrigió su respuesta? Vergüenza. – Malfist

-1

Si se instala una de 64 bits de Ubuntu, creo que

sudo apt-get install sun-java6-jdk 

le da una Java de 64 bits.


EDITAR: El Java de 64 bits puede darle tanta memoria como necesite con los interruptores apropiados. El límite es con las JVM de 32 bits que no pueden superar los 2-4 Gb según el sistema operativo.

1

La respuesta de skaffman que proporciona el indicador requerido para asignar 6GB de memoria es correcta. Si la 'g' no funciona, puede intentar 6000m (consulte el siguiente enlace para obtener detalles sobre banderas/plataforma)

Para otras opciones, puede encontrar información útil sobre todas las opciones disponibles para Java HotSpot VM aquí .

http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

(Comportamiento y opciones de rendimiento están disponibles. Plataforma enlaces específicos también están disponibles en esta página)

0

JVM (especialmente de 64 bits) no vacila en tomar toda la memoria, y 4 GB no es un problema. Simplemente instale Ubuntu de 64 bits y el paquete predeterminado-jre también será de 64 bits.

También tenga especial cuidado sobre cómo se almacenan sus datos en la memoria. De nuevo, el JDK de 64 bits está muy ansioso de memoria debido a una mayor sobrecarga para los punteros, etc. por lo que si distribuye estos 4Gb en fragmentos pequeños en alguna estructura de datos, 8Gb no será suficiente.

Cuestiones relacionadas