2014-04-14 12 views
18

Próbuję wdrożyć aplikację sieciową zasilaną przez sprężynę rozruchową. Aplikacja została zbudowana w wersji rozruchowej 1.0.1 i ma domyślny Tomcat 7 osadzony jako serwer aplikacji. Chcę przydzielić większą pamięć do aplikacji po uruchomieniu aplikacji za pomocą linii poleceń "java -jar myapp.jar". Czy należy używać parametrów jvm, takich jak -Xms -Xmx lub używać JAVA_OPTS? Próbowałem szukać odpowiedzi z dokumentu lub google, ale nie dostałem odpowiedzi. Czy ktoś może dać wskazówki?jak skonfigurować wielkość sterty, gdy uruchamiana jest aplikacja rozruchu wiosennego z osadzonym tomcatem?

Z góry dziękuję!

Odpowiedz

14

Po prostu użyj normalnego mechanizmu, który skonfigurowałbyś JVM. Dokumenty dostępne w wierszu polecenia są:

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

Ponieważ jest to konkretnie Wiosna Boot pytanie, będę argumentować, że bardziej przydatny odpowiedź niż @ DaveSyer jest to:

można upuścić .conf plik w tym samym katalogu co WAR, który jest faktycznie skryptem powłoki.

np.

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

Każda konfiguracja, którą tam przeprowadzisz, zostanie uruchomiona, zanim uruchomi się wbudowany Tomcat Spring Boot. Osobiście kontroluję wersję pliku .conf.example w samej mojej aplikacji, a następnie upuszczam jej kopię na każdym serwerze, na którym jestem zainstalowany.

Oczywiście wszystko, co ustawisz w pliku .conf, można zastąpić operacjami wiersza poleceń.

+3

To jest tak piękne. I działa również dla plików .jar. I <3 Spring Boot – dustmachine

+0

Od jakiej wersji jest dostępna? – lrkwz

+0

Próbowałem z rozruchu wiosna 1.5.9, ale nie podniósł mój conf: eksport JAVA_OPTS = "java.net.preferIPv4Stack = true" w pliku .conf o nazwie tak samo jak plik jar. Wykonywane z java -jar używając nohup. – Mahesh

29

Jeśli uruchomienie aplikacji z wtyczką spring-boot:

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

W przeciwnym razie, jeśli uruchomiony java -jar:

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

Wydaje się, że nie działa to w Spring Boot 2.0.0.M6. Dokumentacja wtyczki [Spring Boot Maven] (https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-debug.html) określa, że ​​powinna działać, ale nie działa . Widzę dwie opcje: albo określ konfigurację w pom.xml (która działa), albo określ wersję wtyczki Spring Boot Maven na 1.5.9-RELEASE (która również działa). –

Powiązane problemy