2014-04-14 16 views
18

Sto provando a distribuire un'app Web alimentata a molla per la produzione. L'app è costruita con spring-boot 1.0.1 e ha il Tomcat 7 predefinito embeddato come server delle applicazioni. Voglio allocare una memoria più grande all'app quando avvii l'app con la riga di comando 'java -jar myapp.jar'. Devo usare il parametro jvm come -Xms -Xmx o usare JAVA_OPTS? Ho provato a cercare la risposta dal documento o google, ma non ho ricevuto risposta. Qualcuno può dare qualche suggerimento?come configurare la dimensione dell'heap quando si avvia un'applicazione di avvio a molla con tomcat incorporato?

Grazie in anticipo!

risposta

14

Basta usare qualsiasi meccanismo normale per configurare la JVM. Documenti sono disponibili sulla linea di comando:

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

Poiché si tratta in particolare di una molla di avvio domanda , direi che una risposta più utile di @ DaveSyer di questo:

si può cadere un .conf file nella stessa directory di WAR che è effettivamente uno script di shell.

ad es.

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

Qualsiasi configurazione eseguita verrà eseguita prima dell'avvio di Tomcat incorporato Spring Boot. Personalmente, I controllo di versione un file .conf.example nella mia app stessa, quindi rilasciare una copia di esso su ogni server che distribuisco a.

Ovviamente qualsiasi cosa impostata in quel file .conf è sovrascrivibile con le operazioni della riga di comando.

+3

Questo è così bella. E funziona anche per i file .jar. I <3 Spring Boot – dustmachine

+0

Da quale versione è disponibile? – lrkwz

+0

Ho provato con spring boot 1.5.9, ma non ha raccolto il mio conf: export JAVA_OPTS = "java.net.preferIPv4Stack = true" nel file .conf chiamato lo stesso file jar. Eseguito con java-jar usando nohup. – Mahesh

29

Se a partire l'applicazione con il plugin spring-boot:

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

caso contrario, se in esecuzione java -jar:

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

Questo non sembra funzionare per Spring Boot 2.0.0.M6. La documentazione [Spring Boot Maven plugin documentation] (https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-debug.html) specifica che dovrebbe funzionare, ma non . Vedo due opzioni, o specifica la configurazione nel pom.xml (che funziona), oppure specifica la versione del plug-in Maven Spring Boot da 1.5.9-RELEASE (che funziona anche tu). –

Problemi correlati