1. jps
在JDK的bin目录下,jps是参照Unix系统的取名规则命名的,功能和ps的功能类似,可以列举正在运行的虚拟机进程并显示虚拟机执行的主类以及这些进程的唯一ID(对应本机来说和PID相同).
示例:
jps -m 输出JVM启动时传给主类的方法
jps -l 输出主类的全名,如果是Jar则输出jar的路径
jps -v 输出JVM的启动参数
2. jstat
在JDK的bin目录下,jstat主要用于监控虚拟机的各种运行状态信息,如类的装载、内存、垃圾回收、JIT编译器等,在没有GUI的服务器上,这款工具是首选的一款监控工具。
用法:
jstat [option vmid [interval [s|ms] [vount] ] ]
jstat 监控内容 线程号 刷新时间间隔 次数
示例:
jstat –gc PID 1 20 监视Java堆,包含eden、2个survivor区、old区和永久带区域的容量、已用空间、GC时间合计等信息
jstat –gcutil PID 1 20 监视内容与-gc相同,但输出主要关注已使用空间占总空间的百分比
jstat –class PID 1 20 监视类的装载、卸载数量以及类的装载总空间和耗费时间等
3.jinfo
在JDK的bin目录下,jinfo的作用是实时查看虚拟机的各项参数信息
用法:jinfo [option] pid
示例:
jinfo -flags pid //查看设置过值的参数
jinfo -flag InitialHeapSize pid //查看初始堆内存
jinfo -flag MaxHeapSize pid //查看最大堆内存
jinfo -flag PermSize pid //查看初始分配的非堆内存
jinfo -flag MaxPermSize pid //查看最大允许分配的非堆内存
jinfo -flag NewSize pid //查看年轻代初始内存
jinfo -flag MaxNewSize pid //查看年轻代最大内存
jinfo -flag NewRatio pid //查看年轻代与年老代的比值
jinfo -flag SurvivorRatio pid //查看年轻代中Eden区与Survivor区的比值
jinfo -flag MaxTenuringThreshold pid //查看对象如果在Survivor区移动了N次还没有被垃圾回收就进入年老代
jinfo -flag UseSerialGC pid //查看串行收集器
jinfo -flag UseParallelGC pid //查看并行收集器
jinfo -flag UseParNewGC pid //查看并行收集器
jinfo -flag UseParallelOldGC pid //查看并行收集器
jinfo -flag UseConcMarkSweepGC pid //查看CMS垃圾回收器
jinfo -flag UseG1GC pid //查看G1垃圾回收器
jinfo -flag PrintGCDetails pid //查看是否打印GC日志
4.jmap
在JDK的bin目录下,jmap用于生成堆快照(heapdump)
用法:jmap [option] vmid
示例:
jmap -heap pid > 1.txt //参数较多,保存到文件
5.jstack
在JDK的bin目录下,jstack用于JVM当前时刻的线程快照,又称threaddump文件,它是JVM当前每一条线程正在执行的堆栈信息的集合。生成线程快照的主要目的是为了定位线程出现长时间停顿的原因,如线程死锁、死循环、请求外部时长过长导致线程停顿的原因。
用法:jstack [option] vmid
示例:
6. jconsole
在JDK的bin目录下,监控内存,thread,堆栈等,可视化工具。
7. jprofile
类似于jconsole,比jconsole监控信息更全面,内存,线程,包,cup 类,堆栈等
8. JvisualVm
在JDK的bin目录下,监控内存,thread,堆栈等,可视化工具。
来源:https://blog.csdn.net/geekooler/article/details/100852549