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

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

Sé que los tamaños de almacenamiento dynamic se pueden establecer al iniciar Java, pero me gustaría que esto se ajuste mediante variables de entorno en mi servidor.

No puedes hacerlo usando variables de entorno directamente. Necesita usar el conjunto de opciones “no estándar” que se pasan al comando java. Ejecutar: java -X para más detalles. Las opciones que busca son -Xmx y -Xms (este es el tamaño de stack “inicial”, por lo que probablemente sea lo que está buscando).

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

set JAVA_OPTS="-Xms128m -Xmx256m" 

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

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

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

En bash: export _JAVA_OPTIONS="-Xmx1g"

En realidad, hay una forma de establecer valores predeterminados globales para la JVM de Sun mediante variables de entorno.

Consulte Cómo establecer una propiedad del sistema java para que sea efectiva siempre que inicie JVM sin agregarlo a los argumentos de la línea de comando .

No puedes hacerlo usando variables de entorno. Se hace a través de opciones “no estándar”. Ejecutar: java -X para más detalles. Las opciones que busca son -Xmx y -Xms (este es el tamaño de stack “inicial”, por lo que probablemente sea lo que está buscando).

Creo que tu única opción es incluir Java en un script que sustituya las variables de entorno en la línea de comando

Un par de notas:

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

  2. El tamaño máximo de almacenamiento dynamic que puede establecer depende totalmente del entorno: para la mayoría de los sistemas de 32 bits, la cantidad máxima de espacio de almacenamiento dynamic que puede solicitar, independientemente de la memoria disponible, se encuentra en el rango de 2GiB. El mayor montón en un sistema de 64 bits es “realmente grande”. Además, también está prácticamente limitado por la memoria física, ya que la JVM administra el montón y no desea que se produzca un gran intercambio en el disco.

  3. Para entornos de servidor, normalmente desea establecer -Xms y -Xmx con el mismo valor: esto arreglará el tamaño del montón en un determinado tamaño y el recolector de basura tendrá menos trabajo porque el montón nunca tendrá que volver a estar disponible. tamaño.