无法更改tomcat 7堆大小

Mah*_*leh 15 linux tomcat heap-memory tomcat7

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

export CATALINA_OPTS="-Xms512m -Xmx1024m"
Run Code Online (Sandbox Code Playgroud)

然后停下来,启动了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
Run Code Online (Sandbox Code Playgroud)

请指教.

小智 62

sudo vi /etc/default/tomcat7
Run Code Online (Sandbox Code Playgroud)

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

并将piddly -Xmx128m改为-Xms512m -Xmx1024m

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

  • 或者/etc/tomcat7/tomcat7.conf如果你在rpm发行版上. (5认同)
  • 这在我的Ubuntu 12.04上没有用(通过apt-get安装):编辑`/ etc/default/tomcat7无效.编辑`etc/default/tomcat7`有效. (5认同)

oᴉɹ*_*ǝɥɔ 49

别改catalina.sh!! 该文件不应由用户更改.Tomcat更新可能会覆盖它.而是在"$ CATALINA_BASE/bin"(与文件夹相同)中创建一个名为" setenv.sh "的文件catalina.sh.在那里设置所有环境变量.

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

PS一般来说,您应该避免调整可以随提供的包/分发更新而更改的文件,并且存在备用配置方法.在这种情况下,可以静默更新像catalina.sh,等文件,您甚至不会注意到您的配置更改已回滚./etc/tomcat7/tomcat7.conf/etc/init.d/tomcatX


Ara*_*chi 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"
Run Code Online (Sandbox Code Playgroud)

  • 在ubuntu上配置tomcat 7堆的最佳位置. (3认同)

Omn*_*est 3

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

  • 这个答案如何回答这个问题? (2认同)