我通过在catalina.sh
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
请告知。
答案 0 :(得分:61)
sudo vi /etc/default/tomcat7
找到以JAVA_OPTS="-Djava.awt.headless=true
并将piddly -Xmx128m
更改为-Xms512m -Xmx1024m
如果您有多个核心...... -XX:+UseConcMarkSweepGC
可能就是您想要的。
答案 1 :(得分:48)
请勿更改catalina.sh
!! 此文件不应由用户更改。 Tomcat更新可能会覆盖它。而是在“$ CATALINA_BASE / bin”(与catalina.sh
相同的文件夹)中创建名为“ setenv.sh ”的文件。在那里设置所有环境变量。
setenv.sh
是一个可选文件。如果它存在,则由catalina.sh
导入。这个名字暗示你放在那里。这是初始化$ CATALINA_OPTS,$ JAVA_OPTS等的合适位置。
P.S。一般来说,您应该避免调整可以随提供的包/分发更新而更改的文件,并且存在备用配置方法。在这种情况下,catalina.sh
,/etc/tomcat7/tomcat7.conf
,/etc/init.d/tomcatX
等文件可以静默更新,您甚至不会注意到您的配置更改已回滚。
答案 2 :(得分:17)
如何编辑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"
答案 3 :(得分:2)
另外设置export JAVA_OPTS="-Dcom.sun.management.jmxremote"
并使用JConsole检查tomcats内存消耗。
答案 4 :(得分:1)
转到你的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