【问题标题】:Setting heap size in Tomcat在 Tomcat 中设置堆大小
【发布时间】:2011-08-16 21:01:43
【问题描述】:
我正在 unix 环境中的 apache tomcat 服务器上工作。我想增加我的应用程序的堆大小,所以我将它设置在 catalina.sh 文件中。我就是这样做的……
导出 CATALINA_OPTS="-Xms1024m -Xmx1024m"
回声 $CATALINA_OPTS
当我调用 startup.sh 时,它调用 catalina.sh 并将变量 CATALINA_OPTS 设置为 1024,如脚本中的 echo 语句所示。但是,如果我在命令提示符处 echo $CATALINA_OPTS 它会给出空白。这是预期的行为。我怎样才能确定确实已经拾取了正确的堆值?
【问题讨论】:
标签:
java
tomcat
heap-memory
【解决方案1】:
是的,$CATALINA_OPTS 在 shell 执行的脚本之外将不可用。为了获得正确的堆大小,您需要一个分析器,或者使用jmap 来获取堆信息 - 这里 39196 是我机器上的 tomcat 进程的 PID。
mpandit-mbp:~ mpandit$ jmap -heap 39196
Attaching to process ID 39196, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 19.1-b02-334
using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 132120576 (126.0MB)
NewSize = 21757952 (20.75MB)
MaxNewSize = 87228416 (83.1875MB)
OldSize = 65404928 (62.375MB)
NewRatio = 7
SurvivorRatio = 8
PermSize = 21757952 (20.75MB)
MaxPermSize = 85983232 (82.0MB)
【解决方案2】:
$ ps aux | grep tomcat 命令应该显示由 tomcat 选择的实际设置。