本文以windwos平台、查看本地java进程为前提。
jdk的工具集中包含相关的命令,但是不含图形工具visualgc,要使用图形工具需要下载jvmstat工具。
jvmstat3.0下载地址http://www.oracle.com/technetwork/java/jvmstat-142257.htm
注意:我使用的jdk版本为1.7,先前下载了jvmstat2.0,运行visualgc出错,似乎是jdk和jvmstat不匹配,所以大家还是下载最新的jvmstat3.0
报错信息如下:
C:\>visualgc.cmd 5868
Could not attach to 5868
Could not attach to 5868 : com.sun.jvmstat.perfdata.monitor.PerfDataBufferImpl2_
0
下载好jvmstat3.0后就解压到硬盘上吧,比如解压路径为 d:\jvmstat
说是安装,其实就是设置一些环境变量。我把环境变量的设置写在了一个批处理文件中。
SET JAVA_HOME=C:\Program Files\Java\jdk1.7.0_17 rem 如果读者的环境中已经正确设置了这个变量,这句可以省掉。
SET JVMSTAT_JAVA_HOME=%JAVA_HOME% rem 这句很重要,jvmstat的关键设置
SET JVMSTAT_HOME=d:\JVMSTAT
SET PATH=%PATH%;d:\JVMSTAT\BAT\;%JAVA_HOME%\bin;
jps rem 用来查看一下当前机器上的 JAVA进程,主要是查看一下进程号
cmd rem 这句是为了让批处理运行完后不自动退出,还允许用户在这个窗口中继续输入命令
通过上面的批处理文件的示例,相信大家都知道如何设置安装了。当然大家也可以在环境变量-->系统变量中直接设置好环境变量 JAVA_HOME、JVMSTAT_JAVA_HOME、PATH。
确保环境变量设置成功,可以通过jps命令(这个命令式jdk自带的,位置在 JAVA_HOME\bin下)查看当前有哪些java进程。
然后运行visualgc命令。 visualgc <pid>
运行界面如下图,
注意:Histogram窗口在jvm采用“-XX:+UseSerialGC”(串行收集器)垃圾收集器时才会出现。采用其它类型收集器时,Histogram功能不支持。
被监测服务器上可以不安装jvmstat3.0.
在被监测服务器上新建文本文件 jstatd.policy(比如 c:\jstatd.policy) , 其内容如下
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
你需要保证被监测服务器上环境变量 JAVA_HOME被正确设置。
然后在被监测服务器上运行如下命令(jstatd命令jdk自带,位置在JAVA_HOME\bin下),运行这个命令的窗口不要关闭
jstatd -J-Djava.security.policy=c:\jstatd.policy
如果要后台运行这个命令,可以在这句命令前加个 start /b,执行的命令为
start /b jstatd -J-Djava.security.policy=c:\jstatd.policy
在被监测服务器上 用jps命令查看java进程号;
然后就可以用visualgc 监测远程jvm了,其完整命令格式是 visualgc <pid>@<remoteIP>
示例命令如下
visualgc 2004@10.10.33.22
运行如上命令后就会出现如上图的窗口了。
用visualvm工具也能实现如jvmstat中visualgc一样的图形界面功能。
visualvm(jdk1.6X开始就自带了,位置为JAVA_HOME\bin\jvisualvm.exe,也可以在oracle网站上下载单独工具包)可以安装visualgc的插件,安装后可以看到和上图相仿的图形界面。
在visualvm的窗口,选择菜单 工具-->插件,在插件窗口中选择 “可用插件”一页,选择visualgc进行安装;安装完成后,在visualvm窗口的左侧进程树种选择一个进程打开后,右侧就出现Visual GC的TAB页了,选择这个tab页就可以看到相关图形界面如下了
分享到:
相关推荐
JVMStat 3.0是该工具的一个版本,提供了更加直观和图形化的界面,使得用户可以轻松地理解和分析JVM的状态,从而优化应用性能。 1. **JVMStat概述** - JVMStat是Java SDK的一部分,它提供了对JVM内部运行时数据的...
请注意,Java SE 5.0或更高版本的JRE不包含运行jvmstat 3.0工具所需的类文件,因此必须下载和安装Java SE 5.0或更高版本的JDK。 HotSpot JVM Instrumentation HotSpot JVM instrumentation不支持Windows 95、98或...
JVMstat,全称为Java Virtual Machine Statistics Monitoring Tool,是Java平台提供的一种强大的性能分析工具,它可以帮助开发者和系统管理员深入了解Java应用程序在JVM(Java虚拟机)中的运行状态。这个工具尤其在...
【Jvmstat Chartist】是一个基于Java的开源项目,专门设计用于帮助用户分析和可视化通过Sun的jvmstat工具收集的性能指标。jvmstat是一个强大的命令行工具,它能够提供有关Java虚拟机(JVM)内部状态的详细信息,包括...
JVMStat是Java虚拟机的一种性能监控工具,它可以收集和显示关于JVM的内存使用、垃圾收集、线程活动等数据。在命令行中,可以使用`jstat`命令对JVM进行监控。 5. **第三方工具**: - **New Relic**:提供详细的性能...
在Java中,我们可以使用`sun.jvmstat.monitor`和`sun.misc`包下的非公开API来访问注册表,但这种方法可能不适用于所有Java运行环境,因为这些API是非标准且可能在未来的Java版本中被移除。因此,更稳定的方法是使用...
- **jvmstat 3.0**:一种用于监视Java虚拟机运行时行为的工具。 - **Java SE6文档**:详尽的官方文档。 - **性能监控与管理** - HotSpot VM中的DTrace探测器 - 新的监控、管理和诊断功能 - 在Solaris OS上使用...
为了使用 SonarQube 进行代码质量分析,你需要安装和配置相关的组件。这里主要关注 sonar-runner-dist-2.4 的使用。 #### Java 监控工具 除了 SonarQube 外,还提到了几种常用的 Java 监控工具,这些工具可以用来...
这部分主要介绍了HP-UX系统上可用的各种Java工具和选项,旨在帮助用户更好地了解和使用这些工具来诊断和监控Java应用的状态。 - **1.1.1 崩溃分析工具**:这些工具用于分析Java应用崩溃时产生的日志文件,帮助...
为了确保软件质量并提升用户体验,开发者需要借助性能分析工具对应用程序进行性能分析和优化。VisualVM作为一款免费且强大的性能分析工具,在这一过程中扮演着关键角色。 #### 二、VisualVM简介 VisualVM通过多种...
- **虚拟机层面**:使用`jvmstat`工具以及其他命令行选项如`-verbose`、`-Xprof`等来监控JVM的性能指标。 - **应用服务器层面**:通过JMX接口和其他自定义管理组件来进行远程监控和管理。 - **应用程序层面**:使用...
VisualVM的源码中包含了大量的Java API使用,如`sun.jvmstat`和`java.lang.management`包,它们提供了访问JVM内部信息的接口。通过阅读源码,我们可以学习如何获取和解析这些数据,这对于理解和优化Java应用程序的...
VisualVM 是一款免费的性能分析工具。它通过 jvmstat、JMX、SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行动态的性能分析。
到此我们知道了,当系统出现内存溢出时,是哪些参数设置不合理需要调整。但我们怎么知道服务器启动时,到底JVM内存相关参数的值是多少呢。...不信我们就去看看,下面介绍如何使用SUN公司的内存使用监控工具jvmstat.
- **jdk.jlink**: 工具集,用于创建定制的、最小化的Java运行时图像,减少应用程序启动时间和体积。 - **jdk.scripting.nashorn.shell**: Nashorn JavaScript引擎的shell,允许在Java环境中执行JavaScript代码。 ...
`com`和`sun`这两个包通常包含Oracle JDK特有的非公开API和工具,这些类并不保证跨版本兼容,因此在公共代码中应避免直接使用。然而,它们对于理解JVM的工作原理和进行深度调试十分有价值。比如`com.sun`包下的`...
10. **JVM接口**:`sun.misc`和`sun.jvmstat`等包提供了与Java虚拟机直接交互的接口,通常用于诊断和性能监控。 11. **模块系统**:Java 9引入的模块系统(Project Jigsaw),通过`java.module`包使得模块化开发...
解决过程中,首先尝试了SUN提供的性能跟踪工具`jvmstat`,但发现JVM内存使用情况正常,GC(垃圾收集)也没有异常。接着搜索了"Out of swap space"的问题,但没有找到直接的解决方案。然后尝试通过`-XX:+...
获取所有 Java 进程的进程 ID 可以使用 sun.jvmstat.monitor.MonitoredHost 和 sun.jvmstat.monitor.MonitoredVm 两个类,这两个类提供了监控和管理 Java 虚拟机的功能。 下面是一个示例代码,演示如何使用 ...
这一功能主要依赖于JDK的`jdwp`(Java Debug Wire Protocol)协议和`jvmstat`性能监控工具。当类文件被修改并重新编译后,通过HotSwap,JVM能够将新的字节码替换掉旧的,而无需重启应用。 2. **JRebel**: JRebel...