监控,就是要监视控制,既要监视出问题,也要能随时控制调整。下面来说说JVM监控的常用工具(JDK/bin自带提供了很多)和方法。
1 . jinfo
jinfo -h 可以知道使用的参数有:
jinfo [option] <pid> | to connect to running process |
jinfo [option] <executable core> | to connect a core file |
jinfo [option] [service_id@]<remote server IP or hostname> | to connect to remote debug server |
可以看出主要支持的方式是本地pid、core file(如果java程序崩溃生成core文件,jstack工具可以用来获得core文件)和远程server的方式,下面很多都类似,不再说明。
运行一个试试:
jinfo -flags 4520 > info.txt
Attaching to process ID 4520, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.60-b23
Non-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=67108864 -XX:MaxHeapSize=536870912 -XX:MaxNewSize=178782208 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=22020096 -XX:OldSize=45088768 -XX:ThreadStackSize=192 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
Command line: -Djava.endorsed.dirs=D:\Tools\springsource\vfabric-tc-server-developer-2.6.1.RELEASE\\tomcat-7.0.20.B.RELEASE\common\endorsed -Dcatalina.base=D:\Tools\springsource\vfabric-tc-server-developer-2.6.1.RELEASE\dss-server -Dcatalina.home=D:\Tools\springsource\vfabric-tc-server-developer-2.6.1.RELEASE\\tomcat-7.0.20.B.RELEASE -Djava.io.tmpdir=D:\Tools\springsource\vfabric-tc-server-developer-2.6.1.RELEASE\dss-server\temp -Djava.util.logging.manager=com.springsource.tcserver.serviceability.logging.TcServerLogManager -Djava.util.logging.config.file=D:\Tools\springsource\vfabric-tc-server-developer-2.6.1.RELEASE\dss-server\conf\logging.properties -Dwrapper.dump.port=-1 -Xmx512M -Xss192K -Djava.library.path=D:\Tools\springsource\vfabric-tc-server-developer-2.6.1.RELEASE\dss-server\bin\winx86_64 -Dwrapper.key=Ba7mt23RCGfW789b -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=2240 -Dwrapper.version=3.2.3 -Dwrapper.native_library=wrapper -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=5 -Dwrapper.jvmid=2
当然也可以改变运行时的java 进程的opts,就是控制。
2. jmap
观察运行中的jvm物理内存的占用情况。 如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。
jmap -h 可以看到主要的参数,这里举几个例子:
jmap -heap pid
jmap -dump:format=b,file=heap.bin <pid>
dump文件可以通过MemoryAnalyzer等其他分析工具查看,可以查看dump时对象数量,内存占用,线程情况等。
jmap -dump:live
3. jstack
观察jvm中当前所有线程的运行情况和线程当前状态
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。
jstack pid
4. jstat
JVM监测工具(Java Virtual Machine Statistics Monitoring Tool)。利用了JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括各种堆和非堆的大小及其内存使用量、classloader、compiler、垃圾回收状况等。
Usage: jstat -help|-options
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
5. jvisualvm.exe
很明显这是一个可视化的工具
转自:http://blog.csdn.net/hugolyl/article/details/49781657
相关推荐
这些JVM监控工具提供了全面的洞察力,帮助开发者调试问题、优化性能和理解应用程序的行为。熟悉并掌握它们的使用,是Java开发和运维工作中的重要技能。在实际操作中,应根据具体情况选择合适的工具,以实现高效的...
### JVM监控工具使用入门 #### 引言 Java虚拟机(JVM)是运行Java程序的基础环境,其性能直接影响到应用程序的稳定性和响应速度。为了更好地理解和优化JVM的运行状态,开发人员需要掌握一系列的监控工具和技术。...
本文将详细介绍如何在Java中使用JVM监控工具,包括监控工具的选择、基本使用方法、数据分析技巧和实际应用案例。 JVM监控工具是Java开发者的重要伙伴,它们提供了对Java应用程序内部运行机制的洞察。通过本文的详细...
**JVM监控工具** 1. **JConsole**:这是Java SDK自带的一个图形化监控工具,可以查看JVM的内存使用情况、线程状态、类加载情况等。 2. **VisualVM**:功能更为强大的多合一JVM分析工具,提供CPU和内存分析、线程...
JVM监控工具对于理解程序性能、定位问题和优化Java应用的效率至关重要。本篇文章将详细探讨如何利用JVM监控工具来提升Java应用的运行效率。 首先,JVM监控工具可以帮助我们实时查看和分析应用程序的运行状态。例如...
### JVM监控工具详解 在Java应用开发与维护过程中,确保应用程序稳定高效地运行至关重要。为此,JVM(Java虚拟机)提供了多种内置工具用于监控、诊断及优化Java应用程序的性能。本文将详细介绍JVM自带的一些核心...
arthas阿里的开源jvm监控工具,可以用于JVM的调优,快速生成JVM的运行图,方便开发,具体可见阿里的git
### JVM内存监控工具详解 #### 引言 Java Virtual Machine (JVM) 是运行 Java 应用程序的核心组件,其性能直接影响应用的响应速度和稳定性。JVM 的内存管理是性能优化的关键,尤其是在高并发环境下,合理的内存...
JVM监控工具介绍 JVM监控工具是Java开发者和运维人员不可或缺的工具,通过这些工具可以监控和诊断Java应用程序的性能和资源使用情况。本文将介绍五种JVM监控工具:jstack、jconsole、jinfo、jmap和jdb。 jstack ...
以下是几种常用的JVM监控工具的详细介绍: 1. **jstack**: `jstack` 是一个用于打印Java线程堆栈跟踪的工具,它可以帮助我们了解应用程序中线程的状态,比如是否发生死锁或者线程阻塞。通过指定进程ID,我们可以...
VisualVM是一款强大的JVM(Java Virtual Machine)监控和性能分析工具,由Oracle公司开发并提供。它集成在Java SDK中,默认位于%JAVA_HOME%\bin目录下,方便开发者直接使用。这款工具提供了丰富的功能,帮助Java...
"Java内存泄露_JVM监控工具介绍" Java内存泄露是Java开发中常见的一种问题,发生内存泄露可能会导致Java应用程序崩溃或性能下降。在Java中,内存泄露的原因非常多样,例如,静态变量、循环引用、数据库连接池、...
3. **本地JVM监控** - **连接本地应用**:在"Local"选项卡中,你可以看到运行在本机上的所有JVM实例,选择目标应用,点击"Open"进行监控。 - **性能监控**:在"Monitors"选项卡中,你可以查看CPU使用率、内存分配...
IntelliJ IDEA(简称Idea)作为广受欢迎的Java集成开发环境,提供了一系列强大的工具来帮助开发者进行性能调优,其中就包括JProfiler11这款强大的JVM内存分析工具。本文将详细介绍如何使用Idea中的JProfiler11插件,...
### JAVA JVM性能调优监控工具详解 在Java开发过程中,特别是在企业级应用中,经常会遇到各种性能瓶颈问题,如内存溢出(`OutOfMemoryError`)、内存泄露、线程死锁、锁争用等问题。这些问题如果不能及时有效地解决...
JVM监控工具对于理解应用性能、优化内存使用、定位问题和故障排查至关重要。以下是一些关于JVM监控工具的重要知识点: 1. **JConsole**: JConsole是Java自带的一个图形化JVM监控工具,它可以显示关于Java应用程序的...
本篇将重点介绍几种常用的JVM监控工具,包括jstack、jconsole、jinfo、jmap以及jdb和jstat。 首先,`jstack`是一个用于打印Java线程堆栈跟踪的工具。当应用出现死锁或者线程阻塞时,jstack可以帮助我们查看各个线程...
【标签】"hpjmeter jvm监控"指示了该工具的主要功能,即对JVM进行实时监控,包括查看内存使用情况、线程状态、类加载信息等。"jvm gc"是Java虚拟机的垃圾收集器,负责自动回收不再使用的内存,以防止内存泄漏。"full...
### JVM监控工具详解 在Java开发与运维领域,掌握有效的监控工具对于确保应用程序的稳定运行至关重要。本文将深入探讨六种关键的JVM监控工具——`jstack`, `jconsole`, `jinfo`, `jmap`, `jdb`, `jstat`——它们...