当前位置: 首页 > 知识库问答 >
问题:

Java VisualVM从tomcat获取堆转储,但tomcat没有在本地应用程序中列出

曹乐意
2023-03-14

我正在尝试诊断可能的内存泄漏问题。应用程序运行非常缓慢。仅仅通过增加permgen的大小只能暂时解决这个问题。我想垃圾收集不需要的类加载器空间。所以,我需要得到一个tomcat服务器的堆转储。

要将tomcat添加到Java visualvm中的应用程序中,本问题中提到了一些步骤。

Java VisualVM不显示/列出我的tomcat Java进程

我应该在应用程序的哪里添加这个?它是一个war文件,我已经部署在客户端的服务器中。我现在无法创建新的war文件。

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=8484
-Dcom.sun.management.jmxremote.ssl=false

共有1个答案

长孙德惠
2023-03-14

首先,您需要在您的服务器上启用它,看看我为您拍摄的打印:

如果在客户机上部署它,则必须通过java_opts传递它。

Linux示例:

export JAVA_OPTS="-Detc etc..."
set JAVA_OPTS="-Detc etc..."
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=8484
-Dcom.sun.management.jmxremote.ssl=false

检查端口是否未被使用。

然后您需要配置您的JMX,这里是官方教程,它有点简单:http://visualvm.java.net/jmx_connections.html

 类似资料:
  • 我在https://grails.org/wiki/Quick当我用“grails run app”启动应用程序时,它运行良好。 如果我使用“grails war”构建应用程序并将war部署到我的tomcat 8中,我只会收到404个错误。tomcat管理器应用程序将我的应用程序列为已启动,日志文件中没有错误。 我错过了什么? 我使用grails 3.2.0 这似乎是引导。未执行groovy。我这

  • 问题内容: (使用Java 6和Tomcat6。) 有没有一种方法可以让我在开发环境(即本地主机)中返回值而无需修改应用程序的web.xml文件? 我问的原因是,将应用程序部署到远程环境时的身份验证实现是由Web服务器和插入式工具处理的。在本地运行我显然没有插件工具或单独的Web服务器;我只有Tomcat6。我试图避免仅仅为了支持本地主机上的开发而向应用程序中添加代码。 我希望可以对context

  • 问题内容: 我需要一种 从应用程序内部 请求堆转储 的方法 。 基本原理:当遇到特定的错误情况时,我想转储堆,以便可以看到内存中有什么内容。 但是我想使它自动化(例如,当我检测到某些特定情况发生时。或者当看门狗不再收到ping命令时;当某些测试失败时)。因此,我需要一种从应用程序本身内部转储堆的方法。我似乎无法通过MX bean的东西找到它。尽管MX Bean可以通过监视器和“可拥有的同步器”信息

  • 我正在为我的web应用程序使用spring boot。我已经在applciation属性中将上下文路径设置为。但是当我运行我的应用程序时,嵌入式容器没有设置上下文路径。

  • 我试图用以下xml文件在tomcat 8中部署一个应用程序: 我读了很多关于资源方法的迁移,并将xml文件更改为: 该应用程序启动正常,但没有从jar文件中导入类。我肯定我错过了一些东西,找不到一个好的例子来说明如何做到这一点。请帮助。 我的JSP无法编译,正在抛出 组织。阿帕奇。贾斯珀。JaspereException:无法为JSP编译类:在生成的java文件:[/usr/local/apach

  • 还有,我应该什么时候关闭executor服务? 我是新的纺纱线程这种方式,有人能帮助我了解它是如何工作的吗?