¿Cómo configuro el tamaño mínimo y máximo de almacenamiento de Java a través de las variables de entorno?

StackOverflow https://stackoverflow.com/questions/417152

Pregunta

¿Cómo configuro el tamaño mínimo y máximo de almacenamiento de Java a través de las variables de entorno?

Sé que los tamaños del montón se pueden establecer al iniciar java, pero me gustaría que esto se ajuste a las variables de entorno en mi servidor.

¿Fue útil?

Solución

No puedes hacerlo usando variables de entorno directamente. Debe utilizar el conjunto de " no estándar " Opciones que se pasan al comando java. Ejecute: java -X para más detalles. Las opciones que estás buscando son -Xmx y -Xms (esto es " inicial " tamaño de pila, por lo que probablemente lo que estás buscando)

Algunos productos como Ant o Tomcat pueden venir con un script por lotes que busca la variable de entorno JAVA_OPTS, pero no es parte del tiempo de ejecución de Java. Si está utilizando uno de esos productos, es posible que pueda establecer la variable como:

set JAVA_OPTS="-Xms128m -Xmx256m"  

También puede adoptar este enfoque con su propia línea de comando como:

set JAVA_OPTS="-Xms128m -Xmx256m"  
java ${JAVA_OPTS} MyClass

Otros consejos

Si desea que cualquier proceso de java , no solo ant o Tomcat, seleccione opciones como -Xmx use la variable de entorno _JAVA_OPTIONS .

En bash: export _JAVA_OPTIONS = " -Xmx1g "

En realidad, hay una manera de establecer valores predeterminados globales para la JVM de Sun a través de variables de entorno.

Consulte Cómo configurar una propiedad del sistema java para que sea efectiva cada vez que inicio JVM sin agregarla a los argumentos de la línea de comando .

No puedes hacerlo usando variables de entorno. Se realiza a través de " no estándar " opciones Ejecute: java -X para obtener detalles. Las opciones que estás buscando son -Xmx y -Xms (esto es " inicial " tamaño de pila, así que probablemente lo que estás buscando).

Creo que tu única opción es envolver java en un script que sustituya las variables de entorno en la línea de comandos

Un par de notas:

  1. Apache ant no sabe nada acerca de JAVA_OPTS, mientras que los scripts de inicio de Tomcat sí lo saben. Para Apache ant, use ANT_OPTS para afectar el entorno de la JVM que ejecuta / ant /, pero no para las cosas que ant puede lanzar.

  2. El tamaño máximo de almacenamiento dinámico que puede establecer depende completamente del entorno: para la mayoría de los sistemas de 32 bits, la cantidad máxima de espacio de almacenamiento dinámico que puede solicitar, independientemente de la memoria disponible, está en el rango de 2GiB. El montón más grande en un sistema de 64 bits es "realmente grande". Además, también está prácticamente limitado por la memoria física, ya que el montón es administrado por la JVM y no quiere que haya muchos intercambios en el disco.

  3. Para entornos de servidor, normalmente desea establecer -Xms y -Xmx en el mismo valor: esto solucionará el tamaño del montón en un tamaño determinado y el recolector de basura tiene menos trabajo que hacer porque el montón nunca se debe cambiar el tamaño.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top