我正在 unix 环境中的 apache tomcat 服务器上工作。我想增加我的应用程序的堆大小,所以我在 catalina.sh 文件中设置它。我就是这样做的...
导出 CATALINA_OPTS="-Xms1024m -Xmx1024m" 回声 $CATALINA_OPTS
当我调用 startup.sh 时,它会调用 catalina.sh 并将变量 CATALINA_OPTS 设置为 1024,如脚本中的 echo 语句所示。但是如果我在命令提示符下回显 $CATALINA_OPTS 它会给出空白。这是预期的行为吗?我如何确定确实已提取正确的堆值?
最佳答案
是的,$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)
关于java - 在 Tomcat 中设置堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5855705/