几个比较实用的JVM进程分析命令

jps:显示本机所有jvm进程
jps -q #只显示进程号
jps -l  #显示主类全名或所在jar路径
jps -m #显示传给main类的参数信息
jps -v #显示进程启动时指定的jvm参数

jinfo:查看或设置java虚拟机参数
jinfo -flag MaxPermSize #显示该jvm进程的-XX:MaxPermSize参数值(无所谓是否在启动脚本中设置了该参数)

jstat:虚拟机统计信息监视,可以监控类装载、内存gc情况、jit编译情况等
jstat -class #监视类装载情况
jstat -gc|gcdetail|gcutil|gccause #gc情况与内存使用
jstat -gcnew|gcnewcapacity   #新生代gc情况
jstat -gcold|gcoldcapacity #老年代gc情况
jstat -gcpermdetail #持久带gc情况
jstat -gc 100ms 4 #每隔100ms检测gc情况,一共检测4次
jstat -gc protocal://@hostname:port/servername #检测远程主机

jmap:java内存映射工具,可查看堆内存信息
jmap -dump:[live,]format=b,file= #将pid对应的jvm进程堆内存dump到filename文件
jmap -histo #显示堆中对象的统计信息,如类、实例数量等
jmap -permstat #以classloader为统计口径显示永久代内存状态,only for linux

jhat:虚拟机堆dump文件查看分析工具,执行后会启动一个http服务器,用网页即可看见堆内对象的情况,亦可以使用OQL查询
jhat

jstack:java线程堆栈查看工具
jstack -l #加l参数同时会显示锁信息

jconsole:图形化的java进程监控工具
提供查看系统CPU,进程内存、线程、对象等信息

jvisualvm:图形化的java进程AllInOne处理工具
除jconsole功能外,还提供堆dump与分析、动态对象性能分析、离线快照等功能,另外其可以通过plugin插件进行功能扩展

 

你可能感兴趣的:(Java基础)