同时在多个Java实例上自动执行JAVA内存分析

时间:2013-04-03 23:56:10

标签: java memory profiling memory-profiling

我在开发JAVA方面相对缺乏经验,我希望得到一些建议。

我有一个模块化的JAVA服务器应用程序设置,其中一个高级服务充当前端接口,与8个较低级别的服务进行通信。

在生产中,每项服务都托管在自己的机器上。

我正在寻找一个标准的SE开发环境,它可以在本地启动所有实例。我目前正在使用eclipse和JVMmonitor。

我当前的工作流程涉及手动启动每项服务,然后通过eclipse手动触发每项服务的监控过程。这个工作流程完成了工作,但我确信有人遇到过更智能的解决方案。大多数论坛帖子只解决监控一个java实例。

还有其他独立的JAVA应用程序,任何人都会建议吗?如果可能的话,我想避免添加分析代码。

2 个答案:

答案 0 :(得分:3)

大多数分析器允许您分析JVM而无需手动启动分析器。

例如,JProfiler调用此“脱机概要分析”,JProfiler GUI中的集成向导可以选择它:

enter image description here

免责声明:我公司开发JProfiler。

答案 1 :(得分:1)

使用visualVM。您可以从本地计算机到不同服务器进行配置。 http://docs.oracle.com/javase/6/docs/technotes/guides/visualvm/applications_remote.html要在不同服务器中进行性能分析,您需要定义jstatd.all.policy文件。例如,如果要监视到不同的服务器,请说s1,s2,s3然后在s1,s2,s3服务器定义jstatd.all.policy文件并运行statd - 虚拟机jstat Daemon。然后从你的本地计算机上你可以监视3 s1 ,s2,s3服务器。

非常容易配置。

1.Run visualVm你可以得到eclipe插话。

2.Run jstatd -J-Djava.security.policy = D:\ jstatd.all.policy //您的服务器中的jstatd.all.policy文件的位置

3.在jstatd.all.policy中定义 授予代码库“file:$ {java.home} /../ lib / tools.jar”{

权限java.security.AllPermission;

};

4.现在从本地连接到您的服务器和监视器。