jps
8848 表示Jps本身的进程,11380表示idea的进程,820表示Launcher启动类进程 8492表示正在运行的ScannerTest Java进程
jstat -class PID(监控Java进程)
Loaded表示加载类的个数,Bytes表示加载类所占字节数
Unloaded表示卸载类的个数,Bytes表示卸载类所占字节数
Time表示花费的总体时间
jstat -class PID interval (持续监控,以毫秒为单位)
jstat -class PID interval count (指定查询次数)
jstat -compiler PID (编译情况)
jstat -compiler PID (被编译的方法)
jstat -gc PID(GC情况)
s0C:s0区的容量 s1C:s1区的容量 s0U:s0区已使用的容量 s1U:s1区已使用的容量
EC:伊甸园区容量 EU:伊甸园区已使用容量 OC:老年代容量 OU:老年代已使用容量
MC:方法区容量 MU:方法区已使用容量 CCSC:压缩类容量 CCSU:压缩类已使用容量
YGC:发生youngGC次数 YGCT: youngGC花费时间 FGC:fullGC次数 FGCT:fullGC花费时间
CGC: 并发GC次数 CGCT:并发GC花费时间 GCT:GC花费总时间
jstat -gc -t PID interval count
(持续观察GC情况,通过两次测量间隔和总GC时间增量,可计算出GC时间占运行时间的比例)
(若OU呈上涨趋势,说明该Java程序的老年代内存使用量在不断上涨意味着无法回收的对象在不断增加,则可能存在内存泄漏)
jinfo -sysprops PID (查看虚拟机配置参数信息)
jinfo -flags PID(查看当前进程曾经赋过值的一些参数)
jinfo -flag 具体参数 PID (查看具体参数的值)
-PrintGCDetails表明该参数未被赋予
jinfo -flag +具体参数 PID(针对boolean类型的参数,可进行添加或删除)
+PrintGCDetails表明该参数被赋予
jinfo -flag 具体参数=具体参数值 PID(针对非boolean类型的参数,可进行修改)
MaxHeapFreeRatio被从100修改到90
jmap -dump:format=b,file=[filename].hprof PID (导出dump文件)
jmap -dump:live,format=b,file=[filename].hprof PID (导出dump文件,只保留存活对象)
jmap -histo PID(输出堆中对象的统计信息,包括类、实例数量和合计容量)
jstack PID (记录各线程状态,并分析,当线程出现停顿时使用)
线程1,2是阻塞状态
分析出现死锁及原因
jcmd -l (列出所有JVM进程)
jcmd PID help (针对指定进程,列出所有支持的命令)
jcmd PID 具体命令 (针对指定进程,显示指令执行数据)