我想添加参数-XX:+HeapDumpOnOutOfMemoryError,因为我的Java应用程序正在遭受java.lang.OutOfMemoryError:Java堆空间错误。我的目标是在应用程序崩溃时获得堆转储,然后使用Eclipse MAT分析文件。
Java应用程序运行在Linux服务器上,我只有一个shell访问权限。我使用的是Tomcat 9。
根据一些教程,操作应该很简单:
- locate $ Catalina _HOME
1.编辑setenv.sh
1.添加类似以下内容: Catalina _OPTS="${CATALINA_OPTS} -Dparam=-XX:+HeapDumpOnOutOfMemoryError”
1.重启Tomcat,你就可以了!
但是因为目录结构总是不同的,我就是找不到那个 Catalina 文件夹或者我根本就没有它,这可能吗?
以下是ls在root中带来的内容:
adminhome
backup
bin -> usr/bin
boot
dev
etc
home
lib -> usr/lib
lib64 -> usr/lib64
lost+found
media
mnt
opt
proc
root
run
sbin -> usr/sbin
srv
sys
tmp
usr
var
字符串
Java应用程序(war)在var/lib/tomcat 9/webapps中运行
编辑:一些进展!
好了,我想我已经找到了 Catalina 的主文件夹:/usr/share/tomcat 9/,但没有配置文件或脚本。ls -l给出了这些目录:
bin
/etc/tomcat9
conf -> /etc/tomcat9
/usr/share/java/tomcat9
/var/log/tomcat9
/var/cache/tomcat9/temp
webapps -> /var/lib/tomcat9/webapps
work -> /var/cache/tomcat9/work
型
应用程序应该已经有了一些VM参数,那么它们是否可以在 Catalina 家中以外的其他地方,或者为什么没有setenv.sh?
1条答案
按热度按时间envsm3lx1#
Ubuntu 22.04与tomcat9服务,然后创建
/usr/share/tomcat9/bin/setenv.sh
文件,并把配置在这里增加内存堆。字符串