2016-11-19 98 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)