Aumentar el tamaño del almacenamiento dynamic en Java

Estoy trabajando en un servidor de Windows 2003 (64 bits) con 8 GB de RAM. ¿Cómo puedo boost el máximo de memoria de montón? Estoy usando el indicador -Xmx1500m para boost el tamaño del -Xmx1500m dynamic a 1500 Mb. ¿Puedo boost la memoria del montón al 75% de la memoria física (6 GB de Heap)?

Puede boost a 4 GB en un sistema de 32 bits. Si tienes un sistema de 64 bits, puedes ir más alto. No necesita preocuparse si ha elegido incorrectamente, si solicita 5g en un sistema de 32 bits, java se quejará de un valor no válido y lo abandonará.

Como otros han publicado, use los indicadores de línea de cmd, por ejemplo

 java -Xmx6g myprogram 

Puede obtener una lista completa (o una lista casi completa, de todos modos) escribiendo java -X.

Es posible boost el tamaño del almacenamiento dynamic asignado por la JVM mediante el uso de opciones de línea de comando Aquí tenemos 3 opciones

 -Xms set initial Java heap size -Xmx set maximum Java heap size -Xss set java thread stack size java -Xms16m -Xmx64m ClassName 

En la línea anterior podemos establecer un montón mínimo de 16mb y un montón máximo de 64mb

En una JVM de 32 bits, el tamaño de almacenamiento dynamic más grande que teóricamente puede establecer es 4 gb. Para usar un tamaño de almacenamiento dynamic más grande, debe usar una JVM de 64 bits. Pruebe lo siguiente:

java -Xmx6144M -d64

La marca -d64 es importante ya que le dice a la JVM que se ejecute en modo de 64 bits.

Es posible boost el tamaño de almacenamiento asignado por la JVM en eclipse directamente en eclipse IDE goto

Ejecutar —-> Configuraciones de ejecución —-> Argumentos

Introduzca -Xmx1g (Se usa para establecer el tamaño máximo como Xmx256m o Xmx1g …… m -> mb g —> gb)

java -d64 -Xms512m -Xmx4g HelloWorld

donde, -d64: habilitará JVM-Xms512m de 64 bits: establecerá el tamaño de almacenamiento dynamic inicial como 512 MB -Xmx4g: establecerá el tamaño de almacenamiento dynamic máximo como 4 GB (aquí el nombre de archivo de Java es: HelloWorld.java)

¿Puedo boost la memoria del montón al 75% de la memoria física (6GB de Heap)?

Sí tu puedes. De hecho, puede boost a más de la cantidad de memoria física, si lo desea.

Si es una buena idea hacer esto depende de cuánto más se está ejecutando en su sistema. En particular, si el “conjunto de trabajo” de las aplicaciones y servicios que se están ejecutando actualmente excede significativamente la memoria física disponible, su sistema es susceptible de “agitar”, pasando mucho tiempo moviendo páginas de memoria virtual hacia y desde el disco. El efecto neto es que el sistema se vuelve terriblemente lento.

Utilice el siguiente comando para cambiar el tamaño del almacenamiento dynamic a 6 GB

 export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m" 

Puede boost el tamaño del Heap al pasar los parámetros JVM -Xms y -Xmx como a continuación:

Para Jar Files:

 java -jar -Xms4096M -Xmx6144M jarFilePath.jar 

Para archivos Java:

  java -Xms4096M -Xmx6144M ClassName 

Los parámetros anteriores aumentan InitialHeapSize (-Xms) a 4 GB (4096 MB) y MaxHeapSize (-Xmx) a 6 GB (6144 MB).

Sin embargo, el Tamaño de Heap de Young Generation seguirá siendo el mismo y HeapSize adicional se agregará al Tamaño de Heap de Old Generation . Para igualar el tamaño de Young Gen Heap y Old Gen Heap , use -XX: NewRatio = 1 -XX: -UseAdaptiveSizePolicy params.

 java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar 

-XX: NewRatio = Old Gen Heap Size: Young Gen HeapSize (Puede jugar con esta proporción para obtener la proporción deseada).

Esto solo funciona con la versión de 64 bits de Java. Vaya a Panel de control y haga clic en el icono de Java. En la pequeña ventana del Panel de control de Java, haga clic en la barra de menú de Java y luego haga clic en el botón view .

Si tiene dos plataformas Java, deshabilite la versión anterior de Java, haga clic en el campo de texto Parámetros de tiempo de ejecución y escriba -Xmx1024m o menor que el tamaño de RAM. No aumente el tamaño del almacenamiento dynamic igual a la RAM; de lo contrario, su sistema fallará.

Varias personas señalaron las respuestas específicas para el tamaño del montón con las opciones jvm de -Xms y -Xms . Quiero señalar que este no es el único tipo de opciones de memoria para el jvm. Específicamente, si obtiene acumular flujos, entonces querrá boost el tamaño de la stack agregando una opción adicional como -Xss8m .

Para este problema, las opciones de jvm de algo como -Xms2g -Xmx6g -Xss8m serían una solución.

Estoy compartiendo esta información ya que mis búsquedas de Google sobre cómo boost la memoria jvm me llevaron a esta solución, y las soluciones no funcionaron con grandes cantidades de asignación de memoria. Una vez que descubrí para qué eran las configuraciones específicas, pude buscar en Google cómo boost el tamaño de la stack y encontré el parámetro faltante. 🙂 Espero que esto ahorre tiempo a otros, ya que me hubiera ahorrado un montón de tiempo. 🙂

Sí. Usted puede.

Puede boost su memoria Heap al 75% de la memoria física (6 GB Heap) o superior.

Dado que está utilizando 64 bits, puede boost el tamaño de su stack a la cantidad deseada. En caso de que esté utilizando 32 bits, está limitado a 4 GB.

 $ java -Xms512m -Xmx6144m JavaApplication 

Establece el tamaño del almacenamiento dynamic inicial en 512mb y el máximo en capacidad de almacenamiento en 6GB.

Espero eso ayude.. 🙂