瀏覽代碼

Adjusting JVM parameters for Dropwizard, Jetty, Resin, Undertow (#2652)

* Add common JVM settings to toolset->java.sh
Modify Dropwizard, Jetty and Undertow start scripts to use them

* Add JAVA_OPTS description to the README.md

* Rename JAVA_OPTS to JAVA_OPTS_TFB

* Fix typos TBF->TFB
Radoslav Petrov 8 年之前
父節點
當前提交
18e0797cd8

+ 5 - 1
frameworks/Java/README.md

@@ -19,7 +19,11 @@ should have an `install.sh` that contains at least
 
     fw_depends java
 
-This installs the Oracle Java 8 JDK.
+This installs the Oracle Java 8 JDK. It also provides a shell variable `JAVA_OPTS_TFB` with tweaked default parameters for the JVM. Sample use:
+
+    #!/bin/bash
+
+    java -server $JAVA_OPTS_TFB
 
 ## Get Help
 

+ 1 - 1
frameworks/Java/dropwizard/setup_mongo.sh

@@ -6,4 +6,4 @@ sed -i 's|host: 127.0.0.1|host: '"${DBHOST}"'|g' hello-world-mongo.yml
 
 mvn -P mongo clean package
 
-java -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world-mongo.yml &
+java -server $JAVA_OPTS_TFB -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world-mongo.yml &

+ 1 - 1
frameworks/Java/dropwizard/setup_mysql.sh

@@ -6,4 +6,4 @@ sed -i 's|url: jdbc:mysql://.*/hello_world|url: jdbc:mysql://'"${DBHOST}"':3306/
 
 mvn -P mysql clean package
 
-java -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world-mysql.yml &
+java -server $JAVA_OPTS_TFB -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world-mysql.yml &

+ 1 - 1
frameworks/Java/dropwizard/setup_postgresql.sh

@@ -6,4 +6,4 @@ sed -i 's|url: jdbc:postgresql://.*/hello_world|url: jdbc:postgresql://'"${DBHOS
 
 mvn -P postgres clean package
 
-java -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world-postgres.yml &
+java -server $JAVA_OPTS_TFB -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world-postgres.yml &

+ 2 - 1
frameworks/Java/jetty-servlet/setup.sh

@@ -5,4 +5,5 @@ fw_depends java maven
 mvn clean compile assembly:single
 
 cd target
-java -jar jetty-servlet-example-0.2-jar-with-dependencies.jar &
+
+java -server $JAVA_OPTS_TFB -jar jetty-servlet-example-0.2-jar-with-dependencies.jar &

+ 2 - 1
frameworks/Java/jetty/setup.sh

@@ -5,4 +5,5 @@ fw_depends java maven
 mvn clean compile assembly:single
 
 cd target
-java -jar jetty-example-0.1-jar-with-dependencies.jar
+
+java -server $JAVA_OPTS_TFB -jar jetty-example-0.1-jar-with-dependencies.jar

+ 2 - 1
frameworks/Java/undertow/setup.sh

@@ -6,4 +6,5 @@ fw_depends mongodb postgresql mysql java maven
 
 mvn clean compile assembly:single
 cd target
-java -jar undertow-example-0.1-jar-with-dependencies.jar &
+
+java -server $JAVA_OPTS_TFB -jar undertow-example-0.1-jar-with-dependencies.jar &

+ 1 - 0
toolset/setup/linux/languages/java.sh

@@ -12,5 +12,6 @@ sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y oracle-
 JAVA_HOME=/usr/lib/jvm/java-8-oracle
 echo "export JAVA_HOME=${JAVA_HOME}" > $IROOT/java.installed
 echo -e "export PATH=\$JAVA_HOME/bin:\$PATH" >> $IROOT/java.installed
+echo 'export JAVA_OPTS_TFB="-Xms1G -Xmx1G -Xss320k -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts"' >> $IROOT/java.installed
 
 source $IROOT/java.installed

+ 1 - 2
toolset/setup/linux/webservers/resin/resin.properties

@@ -80,8 +80,7 @@ setuid_user   :
 setuid_group  : 
 
 # Arg passed directly to the JVM
-jvm_args  : -Xmx2048m -Xms2048m -XX:MaxPermSize=256m
-jvm_mode    : -server
+jvm_args  : -server -Xms1G -Xmx1G -Xss320k -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts
 
 # Local URLs for the watchdog to check to ensure the server is up,
 # space separated