1.1 Visual VM 简介
VisualVM 提供在 Java 虚拟机 (Java Virutal Machine, JVM) 上运行的Java 应用程序的详细信息。在 VisualVM 的图形用户界面中,您可以方便、快捷地查看多个 Java 应用程序的相关信息。(摘自官方)
简
单说来,VisualVM 是一种集成了多个 JDK
命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jstat, JConsole, jstack,
jmap 和 jinfo,这些工具与 JDK 的标准版本是一致的。
可以使用 VisualVM
生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析, 同时它还支持在 MBeans 上进行浏览和操作。尽管
VisualVM自身要在 JDK6 这个版本上运行,但是 JDK1.4
以上版本的程序它都能监控.对于我们来说,这些功能都是至关重要的。以前大家可能会用 YourKit 这样
的付费软件来检测我的应用软件,但现在可以用 VisualVM 这样一个开源工具来实现同样的功能了。更何况,有谁比能 Sun 公司更了解 JVM 呢?
1.2 如何获取 VisualVM
VisualVM 的一个最大好处就是,它已经在你的 JDK bin 目录里了,只要你使用的是 JDK1.6 Update7 之后的版本。点击一下 jvisualvm.exe 图标它就可以运行了。
这里是 VisualVM 的官方网站: https://visualvm.dev.java.net,资料很全,
同时提供 VisualVM 最近版本下载。
2 Visual VM 实战
2.1 开启 Visual VM 之旅
如果你使用的是 JDK 是 1.6Update7 之后的版本,那么 Visual VM 已经包含在 bin 目录下了,否则需要去官方下载,目前最新版本是 1.2.1。
2.1.1 启动问题
如
果你在 windows 上使用 Visual VM,需要做的只是点一下 jvisualvm.exe,就能启动它;绿色,好用。但是 Visual
VM 所在的分区如果是 NTFS 格式,那么第一个问题就出现了:sun 对 NTFS
格式的硬盘支持有问题!但可通过参数可避免,并完成启动。步骤如下:
1. 创建一个 visualvm.exe 的快捷方式
2. 在“目标”中添加如下参数
-XX:+PerfBypassFileSystemCheck
2.1.2 界面简介
Visual
VM 启动成功!可以看到 Visual VM 的界面了。通过 Visual VM 可以看到本机运行中的所有 Java
应用。你会发现根本不需要在 VisualVM 里为 Java应用程序注册,它们就会自动显示出来。甚至还可以在导航栏里查看到远程的Java
应用。 导航栏即为 Applications,其中分为 Local (本地 Java 应用) Remote 和(远程的 Java 应用)。
2.1.3 安装插件
Visual VM 有很多好用的插件; 而且 Sun 为了推广 Visual VM,还举办的 VisualVM 插件开发大赛,一等奖奖金为 2000 刀,非常诱人。如何安装插件呢? 点击 Tools -> Plugins
2.1.4 监控本地 Java 应用
Visual
VM 本身就是一个 Java 应用,所以打开 Visual VM 看到的第一个可监控应用就是 Visual VM
本身;可以用它热热身,小试下牛刀。在 Visual VM 可视化界面中可以监控到 Visual VM 本身的内存使用情况、线程情况、Jvm
启动参数、cpu 消耗情况、垃圾回收情况等很多参数。当然如果在本地启一个 Tomcat 一样
可以看到这些参数,可以方便我们在本地对 JVM 进行调优。但是且接如果你是在windows 下起应用,如果你的 Java 应用是在 NTFS 格式的盘附上,记得加参数:-XX:+PerfBypassFileSystemCheck
2.1.5 监控远程 Java 应用
监视远程 Java 应用稍微复杂些。Visual VM 是通过 JMX 来和远程 Java 应用联系的。
JMX:Java Management Extensions,即 Java 管理扩展,是一个为应用程序、设备、系统等植入管理功能的框架。JMX 可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议, 灵活的开发无缝集成的系统、网络和服务管理应用。
下面以 192.168.0.249 上的 tomcat 为例,叙述下监视远程 Java 应用的步骤如下:
1. 为 249 上的 tomcat 配置 jvm 启动参数。在 tomcat 的 catalina.sh 中添 加如下参数:
JAVA_OPTS=' -Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false'
其中-Dcom.sun.management.jmxremote.port=8999 指定了 JMX 启动的代理端口;这个端口就是 Visual VM 要连接的端口
其中--Dcom.sun.management.jmxremote.ssl=false 指定了 JMX 是否启用ssl
其中-Dcom.sun.management.jmxremote.port=8999 指定了 JMX 是否启用
鉴权(需要用户名,密码鉴权)
2. 在 Visual VM 添加远程连接的 Host。右键点击 Remote 后 选Add Remote Host。
3. 添加 249 为需要监控的 Host
4. 使用 JMX 连接 249 的 8999 端口
5. 连接 JMX 开始监控远程 Java 程序
分享到:
相关推荐
【标题】"nginx-upstream-jvm-route-1.15" 涉及的核心知识点是Nginx的upstream模块与JVM路由的整合,特别针对Nginx 1.15版本。这个项目旨在解决在配置Nginx时遇到的特定错误提示“nginx: [emerg] invalid parameter ...
Moonbox(月光宝盒)是JVM-Sandbox生态下的,基于jvm-sandbox-repeater重新开发的一款流量回放平台产品。在jvm-sandbox-repeater基础上提供了更加丰富功能,同时便于线上部署和使用,更多对比参考。 使用场景 你...
赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar; 赠送源代码:metrics-jvm-3.1.5-sources.jar; 赠送Maven依赖信息文件:metrics-jvm-3.1.5.pom; 包含翻译后的API文档:...
JVM调优总结 -Xms -Xmx -Xmn -Xss JVM 调优是 Java virtual machine 的性能优化,通过调整 JVM 的参数来提高 Java 应用程序的性能。其中,-Xms、-Xmx、-Xmn、-Xss 是四个重要的参数,分别控制 JVM 的初始堆大小、...
赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar; 赠送源代码:metrics-jvm-3.1.5-sources.jar; 赠送Maven依赖信息文件:metrics-jvm-3.1.5.pom; 包含翻译后的API文档:...
代码如下:failed to create jvm error code -4 这一般应是内存不够用所致,解决方法参考如下。 打开 Android Studio 安装目录下的bin目录,查找并打开文件 studio.exe.vmoptions,修改代码: 代码如下:-Xmx512m 为...
"nginx-upstream-jvm-route-0.1.tar.gz"正是为了解决这个问题而设计的一个解决方案。 首先,让我们了解一下Nginx的Upstream模块。Upstream模块允许Nginx将接收到的请求转发到一组后端服务器,可以根据配置的策略...
com-sun-tools-visualvm-modules-visualgc-2.1.2 java 虚拟机jvm内存管理软件visualVM的插件visualGC,适合jdk1.7和jdk1.8。使用方法:打开visualVM,工具->插件->已下载->添加插件,定位到本地下载的visualGC位置,...
项目名为"jvm-rs-main",通过这个项目,我们可以深入学习Rust语言与JVM的交互,以及如何构建一个简化版的JVM。 一、Rust语言的魅力 Rust是一种系统级编程语言,它强调安全、并发和速度。它的内存管理模型避免了空...
nginx_upstream_jvm_route 是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能。 安装方法(进入Nginx源码目录): #patch -p0 < /path/to/this/directory/jvm_route.patch # ./configure -...
JVM,MIB,可通过SNMP协议监控JVM运行情况
本资料"jvm-full-gc调优-jvm-full-gc.zip"显然是针对如何减少和优化JVM的Full GC进行深入探讨的。以下将详细介绍JVM Full GC的相关知识点。 1. **理解JVM内存结构**:Java内存主要分为堆内存(Heap)和非堆内存...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
【标题】"Jvm调优练习-jvm-tuning.zip" 提供了一个实践 JVM(Java Virtual Machine)调优的机会,这是一项至关重要的技能,特别是在处理大型、高性能的Java应用程序时。JVM调优涉及到调整一系列参数,以优化应用程序...
标题中的"com-sun-tools-visualvm-modules-visualgc.nbm"是一个NetBeans模块(NBMs)文件,这种文件格式是Oracle NetBeans IDE用来扩展其功能的。VisualVM是一款强大的Java应用程序性能分析工具,它提供了丰富的功能...
JVM-java-springboot-demo.zip
是生态体系下的重要模块,它具备了JVM-Sandbox的所有特点,插件式设计便于快速适配各种中间件,封装请求录制/回放基础协议,也提供了通用可扩展的各种丰富API。 目标人群 - 面向测试开发工程师 线上有个用户请求一直...
VisualGC插件作为一款强大的工具,它为我们提供了直观、详尽的JVM内存使用情况的监控功能,帮助开发者定位内存泄漏、优化性能。本文将深入探讨VisualGC的特性和使用方法,以期为Java开发者提供宝贵的实践指导。 ...
这个名为"jvm-nmt-tracing-master.zip"的压缩包可能包含一个Python项目,用于帮助开发者利用NMT进行JVM内存分析。Python在数据处理和自动化方面具有强大能力,可以很好地与JVM的诊断工具结合,如jinfo、jmap和jcmd,...