#示指定系统内所有的HotSpot虚拟机进程
jps -ml
#用于生成heap dump文件
#还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件。
#jmap不仅能生成dump文件,还可以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等
jmap -histo 764 > online-server_histo.log
jmap -histo:live 764 > online-server_histo:live.log
jmap -dump:live,format=b,file=online-server_dump:live.log 764
jmap -heap 764 > online-server_heap.log
jmap -permstat 764
jmap -clstats 764
#与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,
#可以在浏览器中查看。在此要注意,一般不会直接在服务器上进行分析,因为jhat是一个耗时并且耗费硬件资源的过程,
#一般把服务器生成的dump文件复制到本地或其他机器上进行通过MAT活其他软件分析。
jhat -J-Xmx512m dump.hprof
#反编译字节码文件成可读指令
javap -s java.lang.String
#用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,
#生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。
#线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。
#如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
#另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的
jstack -l 764 > online-server_jstack_l.log
#用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据
jstat -gcutil 764 1000 10 > online-server_jstat_1000_10.log
jstat -gccapacity 764 1000 30 > online-server_gccapacity_1000_30.log
jstat -gc 764 1000 30 > online-server_gc_1000_30.log
jstat -class 764 > online-server_jstat_class.log
jstat -compiler 764 > online-server_jstat_compiler.log
#作用是实时查看和调整虚拟机运行参数
jinfo -sysprops 764 > online-server_jinfo_sysprops.log
jinfo -flags 764 > online-server_jinfo_flags.log
#查看可以在不重启jvm进程的情况下,可以动态设置的jvm参数
java -XX:+PrintFlagsFinal -version|grep manageable > jvm_manageable.log
Jvm自带监控命令实战[base jdk8]
最新推荐文章于 2024-04-08 04:33:41 发布