监控,就是要监视控制,既要监视出问题,也要能随时控制调整。下面来说说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知识点总览:jvm 内存机构、JVM监控工具、JVM调优、GC优化
本文档来源于网络,简单的介绍了jconsole,jmap,jps 详细的介绍了jstat
JVM监控工具使用入门,对初学这帮助很大
arthas阿里的开源jvm监控工具,可以用于JVM的调优,快速生成JVM的运行图,方便开发,具体可见阿里的git
JVM监控工具介绍:详细介绍jstack, jconsole, jinfo, jmap, jdb, jstat 等命令的使用方法
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jsta
jvm 内存监控
JAVA JVM性能调优监控工具详解
idea插件JVM内存工具JProfiler11,下载完,即可导入idea,可idea快捷打开使用。
JVM监控工具,用来怎么提高JAVA的效率 可以展示线程数,看DUMP日志,优化JAVA效率,查询程序的瓶颈
Java内存泄露_JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat
垃圾回收器与JVM性能监控工具介绍垃圾回收器与JVM性能监控工具介绍ppt。
visualVM,放到%JAVA_HOME%\bin目录下即可。
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat.doc
性能监控工具
JVM监控管理及故障诊断工具(常用命令),文中的命令常用于监视JVM虚拟机性能及资源消耗情况。
JVM下篇:性能监控与调优篇.7z
课程前端讲解了JVM的性能监控和调优的概述,对调优的的方法和工具进行讲解学习,让同学们掌握方法,理解知识。课程的中间阶段我们进行了优化思想上的灌输,是整体课程衔接非常重要的部分。而后篇则更加的注重实战和...
JVM性能调优监控工具1
java内存泄露查询的几个命令系统命令的使用说明