如何为 Tomcat 实例设置 VM 参数

问题描述 投票:0回答:1

我想添加参数 -XX:+HeapDumpOnOutOfMemoryError 因为我的 Java 应用程序遇到了 java.lang.OutOfMemoryError: Java heap space - 错误。我的目标是在应用程序崩溃时获取堆转储,然后使用 Eclipse MAT 分析该文件。

Java 应用程序运行在 Linux 服务器上,我只有 shell 访问权限。我正在使用 Tomcat 9。

根据一些教程,操作应该非常简单:

  1. 找到$CATALINA_HOME
  2. 编辑setenv.sh
  3. 添加类似以下内容:CATALINA_OPTS="${CATALINA_OPTS} -Dparam=-XX:+HeapDumpOnOutOfMemoryError"
  4. 重新启动 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/tomcat9/webapps中

编辑:一些进展!

好吧,我想我已经找到了 catalina 主文件夹:/usr/share/tomcat9/ 但没有配置文件或脚本。 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?

java linux shell tomcat jvm
1个回答
0
投票

Ubuntu 22.04 带有 tomcat9 服务,然后创建

/usr/share/tomcat9/bin/setenv.sh
文件并将配置放在这里以增加内存堆。

© www.soinside.com 2019 - 2024. All rights reserved.