对于使用命令行远程监控jvm太麻烦?那可以试试sun提供的VisualVM,jdk1.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
分享到:
- 2009-11-13 14:26
- 浏览 11601
- 评论(27)
- 论坛回复 / 浏览 (25 / 34599)
- 查看更多
相关推荐
通过以上步骤,开发者可以利用VisualVM有效地管理和监控JVM,及时发现并解决性能问题,提高Java应用的稳定性和效率。无论是本地还是远程,VisualVM都是一个强大且易用的JVM工具,值得在日常开发和调优工作中使用。
标题中的"com-sun-tools-visualvm-modules-visualgc.nbm"是一个NetBeans模块(NBMs)文件,这种文件格式是Oracle NetBeans IDE用来扩展其功能的。VisualVM是一款强大的Java应用程序性能分析工具,它提供了丰富的功能...
支持通过JMX(Java Management Extensions)接口远程监控Java应用,获取自定义的MBean(Managed Beans)信息。 6. **内存快照** 提供内存快照功能,可以对比不同时间点的内存分配情况,帮助识别内存泄漏。 7. **...
- JMX(Java Management Extensions)提供管理功能,可远程监控JVM。 通过深入理解JVM的工作原理,并结合实际应用进行调优,开发者可以提升Java应用的稳定性和性能。这份"jvm-training"资料包将帮助你系统学习这些...
这使得开发者在远程或本地环境下,都能够实时监控JVM运行状况,确保系统的稳定运行。 **使用说明** 使用JTop.jar时,通常需要将它放到VisualVM或JConsole的插件目录下。重启工具后,插件会自动加载。在VisualVM中...
在使用VisualVM远程监控JVM之前,需要准备好测试环境。我们需要在服务器上配置jstatd守护程序,并在客户端使用VisualVM连接服务器监控Java程序。 ### 2.2 在服务器上配置 jstatd 的 security policy 文件 在服务器...
4. **JVM配置和监控**:显示JVM的详细配置信息,如堆内存大小、垃圾回收器状态等,同时提供实时的JVM监控,帮助调整和优化JVM参数。 5. **类和对象分析**:查看应用中加载的类和对象数量,以及它们的实例信息,有助...
安装和配置VisualVM插件使得在Idea中监控JVM变得简单直观。通过VisualVM,开发者可以深入理解应用的运行情况,包括CPU、内存和线程的使用,这对于优化代码、排查问题、提升应用性能有着极大的帮助。除了基础功能,...
在远程监控方面,VisualVM 支持两种连接方式:jstatd 和 JMX(Java Management Extensions)。本文将详细介绍如何通过 JMX 方式配置并监控远程的 JVM 进程。 首先,要通过 JMX 方式监控远程 JVM,需要在远程主机上...
在远程服务器上启动Java应用程序时,可以通过添加特定的JMX参数来开启远程监控功能。例如,如下命令展示了如何配置JMX地址、端口等信息: ```sh nohup java -Xms512m -Xmx2048m -XX:PermSize=64m -XX:MaxPermSize...
这个压缩包文件"VisualVM--BTrace"很可能包含了安装和使用BTrace插件所需的所有资源。 BTrace的工作原理是基于字节码注入,它可以让你编写简单的Java脚本,这些脚本会在运行时被插入到目标应用程序的类中。通过这种...
VisualVM 可以远程监控 JVM,需要在远程机器上启动 jstatd 守护进程, 并在本地机器上使用 VisualVM 连接到远程机器。 使用 VisualVM 可以: * 监控 JVM 的性能,包括堆内存、线程、类加载等信息 * 进行线程 dump ...
* 监控远程 Java 应用:使用 VisualVM 还可以监控远程 Java 应用的运行情况,查看 JVM 相关信息、内存使用情况、CPU 消耗情况等。 * 查看 JVM 相关信息:使用 VisualVM 可以查看 JVM 相关信息,如堆栈信息、垃圾回收...
2. **连接远程JVM**:如果需要监控远程Java应用,需要在目标机器上配置JDK的`jvm.options`文件,开启远程监控端口,然后在VisualVM中添加远程主机。 3. **选择分析模块**:根据需求选择合适的分析模块,例如选择...
2. **JMX支持**:通过Java Management Extensions (JMX),VisualVM能够远程连接到运行中的JVM,获取其配置信息,甚至进行管理和操作。 3. **内存分析**:内存分析是VisualVM的一大亮点,它可以显示堆内存的详细使用...
Java远程监控程序JSN是一种用于监视和管理分布式Java应用程序的工具。它允许开发者或系统管理员在不中断应用程序运行的情况下收集性能...通过有效利用JMX、JConsole、VisualVM等工具,可以构建强大的远程监控解决方案。
VisualVM支持JMX(Java Management Extensions),允许远程监控和管理Java应用程序。开发者可以通过JMX连接到应用,获取运行时信息,甚至修改应用程序的配置。 六、插件扩展性 VisualVM的一大亮点是其强大的插件...
本文将深入探讨 VisualVM 及其集成的一系列命令行工具,包括 jps、jstat、jmap、jinfo、jstack 和 JConsole,帮助读者掌握 JVM 内存监控的核心技巧。 #### VisualVM:JVM 监控的全能工具 VisualVM 是一款功能强大...
要设置远程监控,需确保远程JVM启用JMX,并配置了正确的端口和访问权限。在VisualVM中,可以通过“文件”->“打开远程主机”来添加远程服务器。 总结来说,VisualVM是一个强大的Java性能分析工具,它通过丰富的视图...
- **监控工具使用**:利用VisualVM、JConsole等工具监控JVM运行时状态。 **3.2 线程调优** - **线程池配置**:合理配置线程池的大小可以避免过多线程的创建和销毁带来的性能开销。 - **死锁检测**:通过JVM内置的...