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.