不能改变tomcat 7的堆大小

我已经通过在catalina.sh添加以下行来设置tomcat 7的堆大小

 export CATALINA_OPTS="-Xms512m -Xmx1024m" 

然后停下来,启动了tomcat。 但是当试图使用命令jmap -heap获取堆大小时,我可以注意到内存不会改变:

 Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 526385152 (502.0MB) NewSize = 1048576 (1.0MB) MaxNewSize = 4294901760 (4095.9375MB) OldSize = 4194304 (4.0MB) NewRatio = 2 SurvivorRatio = 8 PermSize = 16777216 (16.0MB) MaxPermSize = 67108864 (64.0MB) Heap Usage: PS Young Generation Eden Space: capacity = 99352576 (94.75MB) used = 9643144 (9.196418762207031MB) free = 89709432 (85.55358123779297MB) 9.705982862487632% used From Space: capacity = 4063232 (3.875MB) used = 0 (0.0MB) free = 4063232 (3.875MB) 0.0% used To Space: capacity = 5177344 (4.9375MB) used = 0 (0.0MB) free = 5177344 (4.9375MB) 0.0% used PS Old Generation capacity = 37748736 (36.0MB) used = 21889008 (20.874984741210938MB) free = 15859728 (15.125015258789062MB) 57.98606872558594% used PS Perm Generation capacity = 60948480 (58.125MB) used = 31496008 (30.03693389892578MB) free = 29452472 (28.08806610107422MB) 51.67644541750672% used 

请指教。

另外设置export JAVA_OPTS="-Dcom.sun.management.jmxremote"并使用JConsole来检查tomcats的内存消耗。

 sudo vi /etc/default/tomcat7 

找到开始的行JAVA_OPTS="-Djava.awt.headless=true

并将-Xmx128m更改为-Xms512m -Xmx1024m

如果你有多个核心… -XX:+UseConcMarkSweepGC可能是你想要的。

不要改变catalina.sh 这个文件不应该被用户改变。 Tomcat更新可能会覆盖它。 相反,在“$ CATALINA_BASE / bin”(与catalina.sh文件夹相同的文件夹)中创建一个名为“ setenv.sh ”的文件。 在那里设置你所有的环境变量。

setenv.sh是一个可选文件。 如果存在,则由catalina.sh导入。 这个名字显示你放在那里。 这是初始化$ CATALINA_OPTS,$ JAVA_OPTS等的适当位置。

PS一般来说,你应该避免调整文件,这些文件可以通过提供的软件包/发行版更新来改变,并且存在替代的配置方法。 在这种情况下,像catalina.sh/etc/tomcat7/tomcat7.conf etc/ /etc/tomcat7/tomcat7.conf ,/etc/ /etc/init.d/tomcatX /etc/tomcat7/tomcat7.conf等文件可以静静地更新,你甚至不会注意到你的配置更改被回滚。

如何编辑etc / default / tomcat7

 # You may pass JVM startup parameters to Java here. If unset, the default # options will be: -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC # # Use "-XX:+UseConcMarkSweepGC" to enable the CMS garbage collector (improved # response time). If you use that option and you run Tomcat on a machine with # exactly one CPU chip that contains one or two cores, you should also add # the "-XX:+CMSIncrementalMode" option. JAVA_OPTS="-Djava.awt.headless=true -Xmx1280m -XX:+UseConcMarkSweepGC" 

转到你的catalina.sh

在开始处添加这些行

 JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC" 

然后用startup.sh启动你的tomcat