2016-11-19 86 views
2

我有時間創建setenv.sh如下Tomcat的內存不增加

export CATALINA_OPTS="$CATALINA_OPTS -Xms2024m" 
export CATALINA_OPTS="$CATALINA_OPTS -Xmx3024m" 

但是當Tomcat啓動它,它是由500MB 和2核心杯開始一個核CPU也開始擁有1GB

我需要知道爲什麼它不與2GB

盯着當我要啓動Tomcat ID通過運行以下命令

./catalina.sh start 

在下面的代碼CATALINA.SH已經退出其調用setenv.sh

if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then 
    . "$CATALINA_BASE/bin/setenv.sh" 
elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then 
    . "$CATALINA_HOME/bin/setenv.sh" 
fi 

我有檢查Tomcat的日誌,它被提及,它是先從2024米,但它仍然是不使用2G內存

INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms2024m 
INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx3024m 
INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/share/tomcat 

回答

2

是tomcat從setenv.sh開始?環境變量被繼承到子進程並不會影響父母,所以下面將不工作:

$ ./setenvh.sh 
$ ./start-tomcat.sh 

因爲shell是父進程,變量獲取一個子進程(setenv.sh)設置,然後「忘記「,當劇本退出。

下面的工作:

$ . ./setenv.sh 
$ ./start-tomcat.sh 

因爲.在當前shell執行setenv.sh和子進程中起tomcat前,修改您的變量。

+0

請你多幫助我,我跑./catalonia.sh開始時,我想開始,請讓我知道你啓動tomcat的方式 –

+0

我會用'CATALINA_OPTS =「$ CATALINA_OPTS -server -Xms2024m -Xmx3024m」' –

+1

「來編輯'catalina.sh'你可以將setenv.sh添加到你的questio N + –

0

最好的辦法

運行在Linux上

export _JAVA_OPTIONS="-Xms2024m -Xmx3024m" 

停止啓動Tomcat

./catalina.sh stop 
Using CATALINA_BASE: /usr/tomcat 
Using CATALINA_HOME: /usr/tomcat 
Using CATALINA_TMPDIR: /usr/tomcat/temp 
Using JRE_HOME:  /usr/lib/jvm/java-8-oracle 
Using CLASSPATH:  /usr/share/tomcat/bin/bootstrap.jar:/usr/tomcat/bin/tomcat-juli.jar 
Picked up _JAVA_OPTIONS: -Xms2024m -Xmx3024 

當你停止在日誌中的tomcat它提

Picked up _JAVA_OPTIONS: -Xms2024m -Xmx3024 

開始

./catalina.sh start 
Using CATALINA_BASE: /usr/tomcat 
Using CATALINA_HOME: /usr/tomcat 
Using CATALINA_TMPDIR: /usr/tomcat/temp 
Using JRE_HOME:  /usr/lib/jvm/java-8-oracle 
Using CLASSPATH:  /usr/share/tomcat/bin/bootstrap.jar:/usr/tomcat/bin/tomcat-juli.jar 

,並通過以下命令可以檢查JAVA環境的變化

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize' 

結果

Picked up _JAVA_OPTIONS: -Xms2024m -Xmx3024m 
     intx CompilerThreadStackSize     = 0         {pd product} 
     uintx ErgoHeapSizeLimit       = 0         {product} 
     uintx HeapSizePerGCThread      = 87241520       {product} 
     uintx InitialHeapSize       := 2122317824       {product} 
     uintx LargePageHeapSizeThreshold    = 134217728       {product} 
     uintx MaxHeapSize        := 3170893824       {product} 
     intx ThreadStackSize       = 1024        {pd product} 
     intx VMThreadStackSize       = 1024        {pd product} 
    java version "1.8.0_111" 
    Java(TM) SE Runtime Environment (build 1.8.0_111-b14) 
    Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)