jps:查看虚拟机进程状况,可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态,hostid为RMI注册表中注册的主机名。
格式:jps [options] [hostid]
-q:只输出LVMID,省略主类名
-m:输出启动时main函数的参数
-l:输出主类的全名,如果进程执行的是jar包,输出jar路径
-v:输出虚拟机进程启动时JVM参数
jstat:监视虚拟机各种运行状态,显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据
格式:jstat [option vmid [interval s|ms] [count]]
如果是本地虚拟机进程,VMID与LVMID是一致的,如果是远程的,VMID格式是:
[protocol:] [//] lvmid [@hostname [:port] /servername ]
interval表示查询间隔,count表示查询次数
jstat -gc 2764 250 20 表示每250毫秒查询一次2764进程的垃圾收集状况,一共查询20次
-class:监控类装载、卸载数量、总空间以及类装载所耗费的时间
-gc:监视java堆状况,包括eden区、两个survivor区、老年代、永久代等的容量、已用空间、GC时间等
-gccapacity:与gc检视内容一致,主要关注java堆各个区使用到的最大最小空间
-gcutil:与gx监视内容一致,主要关注已使用空间占总空间百分比
-gccause:与gcutil一致,还会输出导致上一次gc的原因
-gcnew:监视新生代gc
-gcnewcapacity:同上
-gcold:监视老年代
-gcoldcapacity:同上
-gcpermcapacity:永久代使用到的最大最小空间
-complier:输出JIT编译器编译过的方式、耗时等信息
-printcomplitation:输出已经被JIT编译的方法
jinfo:java配置信息工具,实时查看和调整虚拟机参数
jinfo -flag [name] VMID:查看参数的值
jinfo -sysprops:输出System.getProperties()的值
jinfo -flag [+/-] name:开启或关闭某些参数
jinfo -flag namevalue:设置某些参数
jmap:内存映像工具,用于生成堆转储快照
-dump :生成转储快照,格式为:-dump:[live,]format=b,file=<filename>,live子参数说明是否只dump出存活的对象
-finalizerinfo:显示在F_Queue中等待Finalize线程执行finalize方法的对象
-heap:堆信息
-histo:堆中对象统计
-permstat:以classloader为统计口径显示永久代内存
-F:对-dump没有响应时,强制生成快照
jhat:快照分析,与jmap联合使用,jhat filename后,访问7000端口即可
jstack:堆栈跟踪,当前时刻的线程快照。线程正在执行的方法的堆栈的集合,为了定位线程等待,死锁等原因。
jstack [option] VMID
-F:当正常输出的请求不被影响时,强制输出线程堆栈
-l:除堆栈信息外,显示关于锁的附加信息
-m:如果调用到本地方法时,显示c/c++堆栈