jvm 如何将VM参数设置为Tomcat示例

pdkcd3nj  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(66)

我想添加参数-XX:+HeapDumpOnOutOfMemoryError,因为我的Java应用程序正在遭受java.lang.OutOfMemoryError:Java堆空间错误。我的目标是在应用程序崩溃时获得堆转储,然后使用Eclipse MAT分析文件。
Java应用程序运行在Linux服务器上,我只有一个shell访问权限。我使用的是Tomcat 9。
根据一些教程,操作应该很简单:

  1. 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?

envsm3lx

envsm3lx1#

Ubuntu 22.04与tomcat9服务,然后创建/usr/share/tomcat9/bin/setenv.sh文件,并把配置在这里增加内存堆。

cat /usr/share/tomcat9/bin/setenv.sh 
export JAVA_OPTS="-Xms2048m -Xmx4096m"

字符串

相关问题