jvm的几个命令jps、jinfo、jmap、jstat,通常都是一看就会,一用就忘。今天在这里总结一下常用的几个命令,方便自己,也方便大家需要使用的时候有所参考。
一.jps
作用:查看当前服务器启动的java进程。
使用:
jps -lvm
jps -lv
-l 输出主类的全类名,如果进程是jar包,输出jar包的路径
-v 输出虚拟进程启动时的jvm参数
-m 输出虚拟机进程启动时传递给主类main()函数的参数
二.jstat
作用:虚拟机内存使用情况分析
使用:
jstat [option] pid
jstat -gc 2958 1000 3 // 查看每个区内存大小和使用情况 gc时间
jstat -gcutil 2958 1000 3 //查看每个区内存使用百分比 和gc时间
jstat -gccause 9052 2000 3 // 和 gcutil功能一样,额外输出上一次垃圾回收的原因
jstat -gccapacity 9052 2000 3 //和gc功能一样,额外输出堆各个区的最大最小内存
jstat -gcnew 9052 2000 3 //新生代gc回收情况
jstat -gcold 9052 2000 3 //老生代gc回收情况
三.jinfo
作用:实时查看看设置虚拟机参数
使用:
jinfo [option] pid
jinfo -flags 9052 //jvm参数
jinfo -sysprops 9052 //打印系统参数
通过java -XX:+PrintFlagsInitial命令找到标记为manageable的配置参数,支持动态修改参数
java -XX:+PrintFlagsInitial|grep manageable
四.jmap
作用:内存镜像
使用:
jmap -heap pid //查看内存使用情况
jmap -dump:live,format=b,file=java.heap.gz 19521 //dump堆内存