常见JVM监控工具用法介绍
VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jps,jstat,jmap,jinfo,jstack,JConsole,这些工具与JDK的标准版本是一致的。
你对JVM监控工具的用法是否了解,这里向大家描述几种,VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!
JVM监控工具介绍
VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jps,jstat,jmap,jinfo,jstack,JConsole,这些工具与JDK的标准版本是一致的。
jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
jmap:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
jinfo:此JVM监控工具可以输出并修改运行时的java进程的opts。
jsatck:如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的javastack和nativestack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
jconsole:一个javaGUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。
接下来是对这些JVM监控工具的详细介绍:
◆从最简单的jps工具开始:我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其id。 jps也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序 都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。
使用方法:在当前命令行下打jps(需要JAVA_HOME,没有的话,到改程序的目录下打)
◆接下来是jstat,我之所以这次调优Liferayportal是因为,liferay在默认的情况下,并发用户一多就会产生 permoutofmomery异常。虽然很开就解决了,但发现对VM内存使用量监控的重要性。通过google,很快的发现了jstat这个工具。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。
jstat-classpid:显示加载class的数量,及所占空间等信息。
jstat-compilerpid:显示VM实时编译的数量等信息。
jstat-gcpid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是younggc的次数,younggc的时间,fullgc的次数,fullgc的时间,gc的总时间。
jstat-gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小 perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可 以根据这个类推,OC是old内纯的占用量。
jstat-gcnewpid:new对象的信息。
jstat-gcnewcapacitypid:new对象的信息及其占用量。
jstat-gcoldpid:old对象的信息。
jstat-gcoldcapacitypid:old对象的信息及其占用量。
jstat-gcpermcapacitypid:perm对象的信息及其占用量。
jstat-gcutilpid:统计gc信息统计。
jstat-printcompilationpid:当前VM执行的信息。
除了以上一个参数外,还可以同时加上两个数字,如:jstat-printcompilation30242506是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。
◆jmap是一个可以输出所有内存中对象的工具,甚至可以将VM中的heap,以二进制输出成文本。使用方法jmap-histopid。如果连用 SHELLjmap-histopid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。 jmap-dump:format=b,file=String3024可以将3024进程的内存heap输出出来到String文件里。
◆jinfo:此JVM监控工具用处比较简单,就是能输出并修改运行时的java进程的运行参数。用法是jinfo-optpid如:查看2788的MaxPerm大小可以用jinfo-flagMaxPermSize2788。
◆jsatck:可以观察到jvm中当前所有线程的运行情况和线程当前状态
jstack2083
◆jconsole是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。由于是GUI程序,这里就不详细介绍了,不会的地方可以参考SUN的官方文档。
使用方法:命令行里打jconsole,选则进程就可以了。
【编辑推荐】
相关推荐
**JVM监控工具** 1. **JConsole**:这是Java SDK自带的一个图形化监控工具,可以查看JVM的内存使用情况、线程状态、类加载情况等。 2. **VisualVM**:功能更为强大的多合一JVM分析工具,提供CPU和内存分析、线程...
本文将介绍Java内存泄露的相关知识点和JVM监控工具的使用方法。 一、jstack命令 jstack命令是一个强大的工具,用于分析Java程序的崩溃原因和堆栈信息。它可以将core文件转换为人类可读的格式,方便开发者快速定位...
本文介绍了两种常见的JVM性能调优监控工具——`jps`和`jstack`的基本使用方法及实际应用场景。这些工具可以帮助开发者快速定位问题所在,提高系统的稳定性和响应速度。此外,对于更复杂的性能问题,还可以结合其他...
本篇文档详细介绍了JVM调优工具的命令使用及其相关知识点,涵盖了内存信息分析、死锁检测、JMX远程监控等方面的命令行工具的使用方法。 首先,文档提到了JPS命令,它用于查看当前运行的Java进程信息,并返回进程ID...
JVM TI在JDK 1.2版本中引入,目的是为了让开发者能够创建更高效、更强大的Java应用程序管理和监控工具。 二、JVM TI的主要功能 1. 类加载和卸载:JVM TI允许工具监控类的加载、初始化、卸载过程,这对于理解程序的...
JVM监控工具可提供线程快照,帮助识别和解决这些问题。 9. **类加载与卸载** 类加载器的运作机制和类的生命周期对JVM性能有一定影响,监控类的加载和卸载有助于优化应用的类加载策略。 10. **性能调优** 通过JVM...
给出的标签“源码 工具”表明博文可能还涉及到了分析JVM源代码和使用相关工具进行JVM调优的讨论。 从提供的部分内容来看,提到了Java发展历程、JVM列表、OpenJDK、编译执行过程和JIT编译等。Java的发展历程始于1995...
8. 调优工具:如JVisualVM、JConsole等,帮助开发者监控和调整JVM的性能。 了解JVM源码可以帮助我们深入理解Java程序的运行过程,优化内存使用,提升程序性能,排查故障。例如,通过阅读垃圾回收器的源码,我们可以...
5. **性能调优**:涵盖JVM性能监控工具的使用,如JConsole、VisualVM等,以及如何通过调整JVM参数(如-Xms, -Xmx, -XX:NewRatio等)来优化内存分配和垃圾收集策略。 6. **线程分析**:讲解如何理解和诊断线程问题,...
2. **性能监控工具**:如JVisualVM、JProfiler、VisualGC等,可以帮助分析内存状况、线程状态、CPU使用率等。 3. **堆dump分析**:通过-jmap或JVisualVM生成heap dump文件,使用MAT(Memory Analyzer Tool)等工具...
### 开发中常见的JVM问题调优 #### 运行时数据区域参数详解 ##### `-Xms` 和 `-Xmx`: 堆起始值与最大值 - **定义**: `-Xms` 设定了JVM堆空间的初始值,而 `-Xmx` 设定了堆空间的最大值。 - **作用**: 这两个参数...
**IDEA工具与JProfiler插件:JVM分析利器** IntelliJ IDEA,作为Java开发者广泛使用的集成开发环境(IDE),提供了丰富的功能和强大的插件支持。其中之一就是JProfiler插件,它是一款针对JVM(Java虚拟机)的高级...
【JVM调优视频理论及工具】主要涵盖了Java虚拟机(JVM)的优化实践与相关的分析工具。在Java开发中,JVM调优是提升应用程序性能的关键环节,尤其是在高并发、大数据处理等场景下,良好的JVM配置能显著提高系统效率。...
为了解决这个问题,作者建议使用 JVM 内部线程的监控机制,例如 JVM 日志和 JFR(Java Flight Recording),来定位问题。此外,作者还建议使用 async_profiler 工具,因为它可以帮助作者发现进程本身的 CPU 占用激增...
Markdown文件通常用于提供项目的介绍、使用方法和常见问题解答,使得用户能够快速上手和理解工具的功能。而XML文件则负责管理项目的构建信息,如项目依赖、构建配置等,这些都是现代Java项目管理不可或缺的部分。 ...
监控工具如JConsole、VisualVM和JMX(Java Management Extensions)提供了查看JVM状态、内存使用情况、线程信息等功能,帮助开发者识别性能瓶颈和内存泄漏。例如,通过监控内存使用情况,可以及时发现长期存活的对象...
- **监控工具使用**:利用VisualVM、JConsole等工具监控JVM运行时状态。 **3.2 线程调优** - **线程池配置**:合理配置线程池的大小可以避免过多线程的创建和销毁带来的性能开销。 - **死锁检测**:通过JVM内置的...
- JVM负责自动管理内存,通过垃圾收集机制回收不再使用的对象所占用的空间。 - 常见的垃圾收集算法有标记-清除、复制、标记-整理和分代收集等。 4. **类加载机制**: - 双亲委派模型:当一个类加载器需要加载类...
- **jconsole、jvisualvm**:内置的JVM监控工具,可查看内存、线程、CPU等信息。 - **jmap、jhat**:用于内存映射和分析。 - **jstack**:查看线程堆栈信息,帮助诊断死锁等问题。 6. **类加载机制** - **双亲...
- 检测和处理内存溢出的方法,如使用JConsole、VisualVM等工具进行监控。 6. **JVM调优**: - 使用JVM参数进行性能优化,例如-Xms、-Xmx设定堆内存大小,-XX:NewRatio调整新生代与老年代比例。 - 调整GC策略,如...