我是Java开发新手,第一次使用VisualVm。我在从VisualVm界面连接远程主机时遇到了一些问题。我在远程主机上运行了JDK1.6,并在同一主机上启动了jstatd服务器。当我从本地计算机上运行的VisualVm界面连接远程主机时,它已连接,但界面中缺少Profiler选项卡和Threads选项卡。可能是什么问题。我的操作系统是SUSELinux。谢谢, 最佳答案 探查器选项卡仅适用于本地JVM。我不确定为什么不显示线程选项卡。它适合我。我读过Netbeans具有远程分析支持。但我从来没有亲自使用过它。
也许你能帮我解决这个问题。Profiler崩溃并显示“拒绝访问”消息,然后我为任何本地应用程序启动它。在我发现的日志文件中:java.io.IOException:Отказановдоступеatsun.tools.attach.WindowsVirtualMachine.openProcess(NativeMethod)atsun.tools.attach.WindowsVirtualMachine.(WindowsVirtualMachine.java:56)atsun.tools.attach.WindowsAttachProvider.attachVirtualMachin
我正在尝试优化我的应用程序的内存使用情况。不幸的是,使用-Dcom.sun.management.jmxremote运行我的应用程序并通过VisualVM连接它对堆使用有相当大的影响。一开始我以为是我应用的问题,后来写了一个很简单的程序确认确实是JMX的开销。以下是Activity图片。看完this,我开始明白这是由于VisualVM检索数据的方式,即通过连续轮询连接的应用程序。我通过查看VisualVM的内存采样器证实了这一点。RMITCPConnection(n)线程正在分配180kb/秒。我的问题是,有没有办法减少VisualVM对堆使用的影响?更改轮询间隔可能不太好,因为我对堆
我正在使用VisualVM监控我的Java应用程序(用JDK1.7编写)。下图显示了此应用程序运行期间的堆内存使用情况。查看此图,您会发现其中有很多尖峰。这些尖峰表明应用程序创建了对象。一旦应用程序处理完它们,它就会使用gc(在这种情况下隐式调用)销毁它们。此外,这是应用程序仍在运行时内存分析器的屏幕截图对我来说,图形的上下性质表明java对象的有效使用。这个推断对吗?堆使用图的理想性质是什么?是否有任何其他方法可以改善我的应用程序的堆内存使用情况? 最佳答案 Tometheupanddownnatureofthegraphindi
事情是这样的,我们项目最近应业主的要求迁移到了新的服务器,起初一切正常,部署、上线、测试都没有问题,项目大概运行了一周的工作日时间都没出现问题,直到周六那天,项目经理打电话过来说服务器崩了,图片上传不了,验证码加载不出来等各种问题。。。然后火速连到服务器dockerstats--no-stream查看了一下Docker命令中用来显示容器资源利用情况,发现这个Java服务一直在持续的上涨到15G左右(正常也就几百兆),以至于涨到服务器挂掉了。。。额,我初步怀疑是定时任务太多的问题。于是我马上咨询单位里经验比较丰富的大佬,让我去监控一下程序的进程,内存使用等情况。如果临时使用的话,就让我临时处理的
我需要能够在没有任何XWindows运行的Linux机器上运行的VM上进行一些内存采样。我试图远程执行此操作,但显然JVisualVM不支持远程内存采样。我有什么选择?谢谢! 最佳答案 您可以使用jmap获取内存样本(也称为堆转储)。下面的命令创建一个文件heap.hprof在当前目录下。jmap-dump:format=b,file=heap.hprof获得样本后,您可以将其转移到另一台机器上,使用您喜欢的任何工具进行分析。我推荐MemoryAnalyzer. 关于java-用于Lin
我有一个j2ee应用程序并通过visualVM监控它。假设我有这样的方法:publicvoiddoStuff(intparam){Strings=getStringVariable(param);StringBuildersb=newStringBuilder();//Dostuffwithsbobject}从threadtap可以看出我的一些thread卡在了上面的方法中。所以我生成了一个堆转储文件来弄清楚s和sb包含什么。但是我该怎么做呢?我正在使用Eclipse内存分析器。 最佳答案 您可以从您的线程中获取局部变量,因为如果一
当我尝试用它分析我们的应用程序时,VisualVM崩溃了,但是如果我可以将我从我们的应用程序完成的jmap内存转储加载到VisualVM中,我可能无需将VisualVM附加到我们的应用程序就可以获得我需要的答案在运行时。那么,有没有办法做到这一点? 最佳答案 打开VisualVM,单击File->Load..并选择您的jmap文件。如果没有加载,我猜你的文件有问题。 关于java-我可以将hprof/jmap转储与VisualVM进行比较吗?,我们在StackOverflow上找到一个类
我阅读了几个关于JMX和VisualVM的链接,但仍然对它们有一些疑问。据我了解,JMX和VisualVM是两种不同的JVM监控工具。此外,JMX具有API,Java应用程序可以合并这些API,并允许监控工具更好地监控应用程序。有人可以澄清这种理解是正确的还是有缺陷的?如果有缺陷,您能否指出任何更好地解释这种差异/比较的文章?此外,我什么时候开始使用JMX或VisualVM来监视托管在Tomcat6.1服务器上的基于Java的Web应用程序? 最佳答案 这是不正确的。JConsole和JavaVisualVM是两种不同的JVM监控工
根据documentation当应用程序遇到OutOfMemoryException时,可以自动进行堆转储。OutOfMemoryException进程从左侧菜单中消失。此功能在VisualVM中如何工作?谢谢。C:\work\temp>java-XX:HeapDumpPath=c:/work/temp/file.hprof-XX:+HeapDumpOnOutOfMemoryError-jarexample.jar 最佳答案 据我所知,JVisualVM中的该选项等同于将-XX:+HeapDumpOnOutOfMemoryError