starter español spring-boot heap-memory xms

español - ¿Cómo configurar el tamaño del montón cuando se inicia una aplicación Spring Boot con tomcat incorporado?



spring boot tomcat configuration (4)

Para Spring Boot 2 , debe especificar el tamaño del montón en pom.xml como se muestra a continuación:

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <jvmArguments>-Xmx64m</jvmArguments> </configuration> </plugin>

Estoy tratando de desplegar una aplicación web basada en Spring Boot en producción. La aplicación está construida con Spring Boot 1.0.1 y tiene el Tomcat 7 predeterminado incorporado como servidor de aplicaciones. Quiero asignar una memoria más grande a la aplicación cuando inicie la aplicación con la línea de comandos java -jar myapp.jar .
¿Debo usar un parámetro JVM como -Xms -Xmx o usar una variable de entorno como JAVA_OPTS ? He intentado buscar la respuesta en la documentación o buscarla en Google, pero no obtuve la respuesta. ¿Alguien puede dar algunos consejos?


Si inicia la aplicación con el complemento de spring-boot :

mvn spring-boot:run -Drun.jvmArguments="-Xmx512m" -Drun.profiles=dev

De lo contrario si ejecuta java -jar :

java -Xmx512m -Dspring.profiles.active=dev -jar app.jar


Simplemente use el mecanismo normal que desee para configurar la JVM. Los documentos están disponibles en la línea de comando:

$ java -X ... -Xms<size> set initial Java heap size -Xmx<size> set maximum Java heap size ...


Ya que esta es específicamente una pregunta de Spring Boot , argumentaría que una respuesta más útil que la de @ DaveSyer es esta:

Puede colocar un archivo .conf en el mismo directorio que su WAR, que es efectivamente un script de shell.

p.ej

$ ls myapp.conf myapp.war $ cat myapp.conf export JAVA_OPTS="-Xmx1024m -Xms256m"

Cualquier configuración que realice allí se ejecutará antes de que se inicie el Tomcat incorporado Spring Boot. Personalmente, controlo la versión de un archivo .conf.example en mi propia aplicación, luego .conf.example una copia de él en cada servidor que despliegue.

Por supuesto, todo lo que establezca en ese archivo .conf se puede anular con las operaciones de la línea de comandos.