`
lixjluck
  • 浏览: 104654 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

远程监控JVM--VisualVM

阅读更多

  对于使用命令行远程监控jvm太麻烦?那可以试试sun提供的VisualVMjdk1.6自带了,可以到bin目录下找到它。

         什么也不说了,直接运行此exe,打开界面如下:

 



 

(图1

         (上图1左边的数可以看到,VisualVM分为3类,Local它会自动侦测到,并显示出来)

         双击Local下的任一节点,看到右边的变化(有点像JProfiler

 

 



 



 

(图2

         看看Visual GC的界面(Java Heap的使用,一目了然)

 



 

(图3

         再在左边的树形窗口,右键看看(看到了Thread Dump, Heap Dump

 



 

(图4

         Thread Dump很快,马上就可以看到结果

 



 

(图5

         Heap Dump要稍花费一些时间(可以看到当前heap里对象的数量及占用的比例,做OOM很好用)

 



 

(图6

                   双击每一行,可以看到具体的信息

 



 

(图7

 

 

我们再看一下图1,左边的窗口中,第二个节点—Remote,它可以用来操作远程机器。远程机器需要启动一个daemon:jstatd

1、远程机器启动jstatd

      1.1、        首先需要准备一个java.policy文件,保存到如/home/admin/jstatd.java.policy

grant codebase "file:${java.home}/../lib/tools.jar" {

   permission java.security.AllPermission;

};

      1.2、        启动jstatd

jstatd -J-Djava.security.policy=/home/admin/jstatd.java.policy -J-Djava.rmi.server.logCalls=true

      1.3、        同时需要执行一个命令看看(linux需要)

Hostname –i

如果显示是127.0.0.1,则需要修改/etc/hosts文件,去掉对本机名的配置,让本机名解析到它的IP地址,如10.20.131.214

2、连接远程机器

 



 

(8)

3、点击OK,看到会连接到远程机器,并显示出它下面的java进程。

 



 

(图9

      到 这个时候的操作,就和上面Local的描述操作一样了。

 

最后,要注意的地方:

最好使用jdk1.6以上版本,不然visualVM很多功能不能用。

你自己也可以写一个VisualVM插件(基于NetBeans的插件体系),完成特殊的任务。

  • 大小: 82.3 KB
  • 大小: 78.1 KB
  • 大小: 68.1 KB
  • 大小: 73.4 KB
  • 大小: 35.3 KB
  • 大小: 78.7 KB
  • 大小: 94.2 KB
  • 大小: 63.2 KB
  • 大小: 29.9 KB
  • 大小: 3.6 KB
分享到:
评论
27 楼 menuhin 2010-10-12  
太感谢楼主了,正需要呢!!学习了!
26 楼 opleo 2010-10-12  
jprofiler是很强大,但其要占用一部份资源
而LZ提到的JDK6以后自带的这款功能方面弱些,但相对来说占用的资源也少些
25 楼 LifeFree 2010-03-02  
这个点错误对话框的troubleshooting链接,一般都是要把环境变量TMP改到支持NTFS文件系统的地方。
macrochen 写道
我在对本地应用进行检测的时候为什么总是提示"无法检测到本地java应用程序"这个是怎么回事?

24 楼 LifeFree 2010-03-02  
貌似要被监测的程序是在JRE6的环境下运行才能监测,我的程序都是jre1.4 ,jre5的老古董。
23 楼 rox 2010-03-02  
macrochen 写道
我在对本地应用进行检测的时候为什么总是提示"无法检测到本地java应用程序"这个是怎么回事?


这里基本都回答了,“在Windows上使用jds无法显示运行的Java程序”
http://movingboy.iteye.com/blog/360494

我的错误比较低级,win2003+FAT32,怎么改也不行,后来使用-XX:+PerfBypassFileSystemCheck启动一个Java程序,VisualVM就自动找到了。没注意看使用帮助,呵呵!
22 楼 murainwood 2010-02-02  
我常用visualvm和jhat这两个内置的工具。visualvm和jhat里内置了OQL查询语言的支持。
这对分析dump下来的内存镜像,是很大的方便
21 楼 macrochen 2010-02-02  
我在对本地应用进行检测的时候为什么总是提示"无法检测到本地java应用程序"这个是怎么回事?
20 楼 byk 2009-12-16  
本机ip:10.10.100.132
服务器ip:10.10.100.41
实验失败:
FINER: RMI TCP Connection(7)-10.10.100.132: [10.10.100.132: sun.tools.jstatd.RemoteHostImpl[-238e1c3f:12597086ff9:-7fff, 4231296780153226062]: public abstract int[] sun.jvmstat.monitor.remote.RemoteHost.activeVms() throws java.rmi.RemoteException,sun.jvmstat.monitor.MonitorException]
Dec 16, 2009 6:41:40 PM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(7)-10.10.100.132: [10.10.100.132: sun.tools.jstatd.RemoteVmImpl[-238e1c3f:12597086ff9:-7ff5, 1925575096304853058]: public abstract byte[] sun.jvmstat.monitor.remote.RemoteVm.getBytes() throws java.rmi.RemoteException]
Dec 16, 2009 6:41:40 PM sun.rmi.server.UnicastServerRef logCall
19 楼 freesky110 2009-12-16  
lixjluck 写道
xieke 写道
能跟jprofiler一样定位到每个方法占用的cpu和内存吗?

没这个功能,还得用jprofiler


对于本地JVM的监控,文档上说可以通过Profiler选项卡可以得到与JProfiler一样的cpu信息,但是我用了,没有办法使用这个功能,不知道为什么?大家又用个这个功能吗?分享一下!
18 楼 wave-labs 2009-11-17  
这个东东挺不错,我主要用它检查死锁。
17 楼 argan 2009-11-16  
恩,不错,楼主的分享挺好的
16 楼 lixjluck 2009-11-16  
xieke 写道
能跟jprofiler一样定位到每个方法占用的cpu和内存吗?

没这个功能,还得用jprofiler
15 楼 lixjluck 2009-11-16  
langyu 写道
嗯,目录下没找到这个文件啊

那你可以到 https://visualvm.dev.java.net/ 单独下载。
14 楼 lixjluck 2009-11-16  
zxwu 写道
linux下,怎样才能不修改/etc/hosts文件

需要root权限的
一般我们会配置 127.0.0.1 localhost dev1(你的机器名)
需要改为
127.0.0.1 localhost
10.0.0.1 dev1
即可。
13 楼 zxwu 2009-11-16  
linux下,怎样才能不修改/etc/hosts文件
12 楼 langyu 2009-11-16  
嗯,目录下没找到这个文件啊
11 楼 clonepig 2009-11-16  
gooooooooood
10 楼 linliangyi2007 2009-11-15  
这个是好贴,要广而告之
9 楼 javatar 2009-11-15  
用VisualVM做Profiler还是不错的,基本的数据都能搞定

BTW: 小军的头像很有型
8 楼 coolspeed 2009-11-14  
独立思考 写道
刚才看了一下,貌似mac中没有这个阿

mac上的jvm版本很新的才有,我记得。可以自己去下载的。我在win上下了jdk7就没有,自己去下载的。

相关推荐

    visualvm监控jvm及远程jvm监控方法

    通过以上步骤,开发者可以利用VisualVM有效地管理和监控JVM,及时发现并解决性能问题,提高Java应用的稳定性和效率。无论是本地还是远程,VisualVM都是一个强大且易用的JVM工具,值得在日常开发和调优工作中使用。

    com-sun-tools-visualvm-modules-visualgc.nbm

    标题中的"com-sun-tools-visualvm-modules-visualgc.nbm"是一个NetBeans模块(NBMs)文件,这种文件格式是Oracle NetBeans IDE用来扩展其功能的。VisualVM是一款强大的Java应用程序性能分析工具,它提供了丰富的功能...

    jvm监控工具visualVM

    支持通过JMX(Java Management Extensions)接口远程监控Java应用,获取自定义的MBean(Managed Beans)信息。 6. **内存快照** 提供内存快照功能,可以对比不同时间点的内存分配情况,帮助识别内存泄漏。 7. **...

    jvm基础知识与调优-jvm-training.zip

    - JMX(Java Management Extensions)提供管理功能,可远程监控JVM。 通过深入理解JVM的工作原理,并结合实际应用进行调优,开发者可以提升Java应用的稳定性和性能。这份"jvm-training"资料包将帮助你系统学习这些...

    jvisualvm插件VisualVM-JConsole依赖包JTop.jar

    这使得开发者在远程或本地环境下,都能够实时监控JVM运行状况,确保系统的稳定运行。 **使用说明** 使用JTop.jar时,通常需要将它放到VisualVM或JConsole的插件目录下。重启工具后,插件会自动加载。在VisualVM中...

    jvisualvm操作手册for linux菜鸟

    在使用VisualVM远程监控JVM之前,需要准备好测试环境。我们需要在服务器上配置jstatd守护程序,并在客户端使用VisualVM连接服务器监控Java程序。 ### 2.2 在服务器上配置 jstatd 的 security policy 文件 在服务器...

    VisualVM 2.1.5 (visualvm-215.zip)

    4. **JVM配置和监控**:显示JVM的详细配置信息,如堆内存大小、垃圾回收器状态等,同时提供实时的JVM监控,帮助调整和优化JVM参数。 5. **类和对象分析**:查看应用中加载的类和对象数量,以及它们的实例信息,有助...

    idea中安装VisualVM监控jvm的图文教程

    安装和配置VisualVM插件使得在Idea中监控JVM变得简单直观。通过VisualVM,开发者可以深入理解应用的运行情况,包括CPU、内存和线程的使用,这对于优化代码、排查问题、提升应用性能有着极大的帮助。除了基础功能,...

    Java VisualVM监控远程JVM(详解)

    在远程监控方面,VisualVM 支持两种连接方式:jstatd 和 JMX(Java Management Extensions)。本文将详细介绍如何通过 JMX 方式配置并监控远程的 JVM 进程。 首先,要通过 JMX 方式监控远程 JVM,需要在远程主机上...

    JVM性能监控方法之visualVM1

    在远程服务器上启动Java应用程序时,可以通过添加特定的JMX参数来开启远程监控功能。例如,如下命令展示了如何配置JMX地址、端口等信息: ```sh nohup java -Xms512m -Xmx2048m -XX:PermSize=64m -XX:MaxPermSize...

    VisualVM--BTrace插件所需文件

    这个压缩包文件"VisualVM--BTrace"很可能包含了安装和使用BTrace插件所需的所有资源。 BTrace的工作原理是基于字节码注入,它可以让你编写简单的Java脚本,这些脚本会在运行时被插入到目标应用程序的类中。通过这种...

    Java自带的性能监控工具使用简介

    VisualVM 可以远程监控 JVM,需要在远程机器上启动 jstatd 守护进程, 并在本地机器上使用 VisualVM 连接到远程机器。 使用 VisualVM 可以: * 监控 JVM 的性能,包括堆内存、线程、类加载等信息 * 进行线程 dump ...

    VisualVM-入门指南.docx

    * 监控远程 Java 应用:使用 VisualVM 还可以监控远程 Java 应用的运行情况,查看 JVM 相关信息、内存使用情况、CPU 消耗情况等。 * 查看 JVM 相关信息:使用 VisualVM 可以查看 JVM 相关信息,如堆栈信息、垃圾回收...

    可视化性能监控工具VisualVM

    2. **连接远程JVM**:如果需要监控远程Java应用,需要在目标机器上配置JDK的`jvm.options`文件,开启远程监控端口,然后在VisualVM中添加远程主机。 3. **选择分析模块**:根据需求选择合适的分析模块,例如选择...

    最新版java JVM 工具 visualvm_20.zip

    2. **JMX支持**:通过Java Management Extensions (JMX),VisualVM能够远程连接到运行中的JVM,获取其配置信息,甚至进行管理和操作。 3. **内存分析**:内存分析是VisualVM的一大亮点,它可以显示堆内存的详细使用...

    java 远程监控程序JSN

    Java远程监控程序JSN是一种用于监视和管理分布式Java应用程序的工具。它允许开发者或系统管理员在不中断应用程序运行的情况下收集性能...通过有效利用JMX、JConsole、VisualVM等工具,可以构建强大的远程监控解决方案。

    jvm内存监控工具使用

    本文将深入探讨 VisualVM 及其集成的一系列命令行工具,包括 jps、jstat、jmap、jinfo、jstack 和 JConsole,帮助读者掌握 JVM 内存监控的核心技巧。 #### VisualVM:JVM 监控的全能工具 VisualVM 是一款功能强大...

    VisualVm虚拟机监控工具

    VisualVM支持JMX(Java Management Extensions),允许远程监控和管理Java应用程序。开发者可以通过JMX连接到应用,获取运行时信息,甚至修改应用程序的配置。 六、插件扩展性 VisualVM的一大亮点是其强大的插件...

    VisualVM介绍

    要设置远程监控,需确保远程JVM启用JMX,并配置了正确的端口和访问权限。在VisualVM中,可以通过“文件”->“打开远程主机”来添加远程服务器。 总结来说,VisualVM是一个强大的Java性能分析工具,它通过丰富的视图...

    深入jvm 内核-原理,诊断于优化视频教程

    - **监控工具使用**:利用VisualVM、JConsole等工具监控JVM运行时状态。 **3.2 线程调优** - **线程池配置**:合理配置线程池的大小可以避免过多线程的创建和销毁带来的性能开销。 - **死锁检测**:通过JVM内置的...

Global site tag (gtag.js) - Google Analytics