我无法使用Netbeans 6.5分析器远程配置java Web应用程序的内存使用情况。
我已按照tutorial中的步骤操作,并且能够自定义Tomcat实例以启动性能分析代理。我还可以将Netbeans探查器连接到正在运行的服务器:几秒钟后,探查器会显示包含服务器内存使用情况的图表。
但是,我无法运行已部署的Web应用程序。几秒钟后,服务器正常关闭,就好像它已经到达方法main的底部(几乎不是Web服务器的预期行为)。
在这几秒钟内,服务器不负责任,我无法连接到其中的Web应用程序,它们根本就没有部署。
我不想将我的应用程序导入到新的Netbeans项目中,只是为了对其进行分析。可以在不访问其来源的情况下分析远程应用程序,对吗?毕竟,几秒钟后,服务器正在运行并进行分析。
我想在Netbeans 6.5中分析Web应用程序。我忘记了什么?
答案 0 :(得分:1)
您也可以使用VisualVM工具。请按照以下步骤进行操作。
1)运行jstatd(jstat恶魔进程)(在运行应用程序的远程计算机上运行) jstatd -p 1098 -J-Djava.security.policy = tools.policy(指定未使用的端口)如果未指定tools.policy文件,请按如下方式创建它。
tools.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
权限java.security.AllPermission; };
2)在启动JVM之前,还要指定以下属性。
#JMX property
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote=true"
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.port=10992"
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.authenticate=false"
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.ssl=false"
3)在本地计算机上启动可视VM。 一个。在远程选项卡下添加远程节点。 湾等待几分钟,您将看到远程选项卡下将显示所有核心应用程序实例。 C。单击远程节点,然后选择Add JMX connections,指定node:port(上面第2点中提到的端口) d。等待几秒钟,您将看到远程节点下的JMX连接。
4)几秒钟后,您将看到远程节点下出现新选项卡。双击remote_node:10992,您将在右侧看到配置文件表。 你可以看到内存,cpu,线程等细节..
答案 1 :(得分:0)
是在分析整个网络服务器,还是使用分析过滤器来仅分析您的包? 减少探查器和应用服务器本身之间的交互可以解决它。
答案 2 :(得分:0)
检查你的jvm版本。 netbeans使用的版本应与tomcat中的版本相同。 使用默认端口。如果您更改了任何端口,请确保它们高于1024。 尝试在tomcat中分析示例应用程序(删除所有其他应用程序)。如果它成功运行,则意味着存在内存约束。 分析需要巨大的内存。使用-xms1024m -xmx1024m用于tomcat。 如果其他一切都失败了。想到切换到jdk6和tomcat 6。 经过多次试验,我发现jdk5和tomcat5有很多限制。切换到tomcat6和jdk6为我解决了这个问题。
使用netbeans进行性能分析不起作用jrockit,ibm jdk等..
- kiran.kumar