性能问答>如何给Tomcat 实例配置jvm参数?>
2回复

如何给Tomcat 实例配置jvm参数?



背景:

Java 程序在只有 shell 访问权限的 linux 服务器上运行。

使用的是 Tomcat 9。

问题:

添加参数 -XX:+HeapDumpOnOutOfMemoryError ,但是遇到 java.lang.OutOfMemoryError: Java heap space - error。

目标当然是为了出问题时候可以获取 heapdump,然后MAT 分析一下。

尝试:

网上看了一些教程,操作看起来很简单:

  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
**in -> usr/**in
srv
sys
tmp
usr
var

Java 程序(war)在 var/lib/tomcat9/webapps 中运行

后来找半天终于在/usr/share/tomcat9/ 里找到了 catalina 主文件夹,但没有配置文件或脚本

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

程序应该已经有一些 JVM 参数,但是可能在 catalina 主目录之外的其他地方,那为什么没有 setenv.sh?

求教各位大佬的指点,问题在哪里~

114 阅读
请先登录,查看2条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步