jps (java process status)查看正在运行的java进程
jps -l 显示全类名
jps -m 输出虚拟机启动时传给main函数的参数
jps -v 列出虚拟机启动时的JVM参数
jstat 查看JVM的统计信息
- -class 打印类加载相关信息,类 的装载,卸载数量,总空间,类加载消耗时间等
jstat -class 20780(进程ID)
1000毫秒打印一次
jstat -class 20780 1000
1000毫秒打印一次,共打印10次
jstat -class 20780 1000 10
输出列添加Timestamp(从程序开始到现在的时间,单位秒)1000毫秒打印一次,共打印10次
jstat -class -t 20780 1000 10
输出列添加Timestamp(从程序开始到现在的时间,单位秒)1000毫秒打印一次,共打印10次,没输出3次打印一次表头
jstat -class -t -h3 20780 1000 10 - JIT 相关
显示JIT编译过得方法,耗时信息等
jstat -compiler 20780
输出已经被JIT编译后的方法
jstat -printcompilation 20780 - GC垃圾收集器
-gc 显示与GC相关的堆信息
jstat -gc 20780
-gccapacity 显示与GC大体相同,更关注java堆各个区域使用的最大、最小空间
jstat -gccapacity 20780
-gcutil 显示与GC大体相同,输出更关注以使用空间占总空间的百分比
jstat -gcutil 20780
-gccause 显示与gcutil 大体相同,但是会输出最后一次或者当前正在发生GC的原因
jstat -gccause 20780
-gcnew 显示新生代GC的情况
jstat -gcnew 20780
-gcnewcapacity 显示与gcnew大体相同,更关注java堆各个区域使用的最大、最小空间
jstat -gcnewcapacity 20780
-gcold 显示老年代GC的情况
jstat -gcold 20780
-gcoldcapacity 显示与gcold 大体相同,更关注java堆各个区域使用的最大、最小空间
jstat -gcoldcapacity 20780
-gcmetacapacity 显示元空间信息
jstat -gcmetacapacity 20780
jinfo 实时查看 和修改JVM参数 - 查看
查看当前程序 的系统属性信息
jinfo -sysprops 20780
查看曾经赋值过得的一些参数
jinfo -flags 20780
查看进程某个具体参数
jinfo -flag 具体参数 20780
jinfo -flag PrintGCDetails 20780 - 修改 (修改是立即生效 ,只有被标记为manageable的flag才能实时被修改)
查看manageable参数,java -XX:+PrintFlagsFinal -version
针对boolean 类型
jinfo -flag [+,-] 具体参数 20780
jinfo -flag +PrintGCDetails 20780
针对非boolean类型
jinfo -flag 具体参数=具体值 20780
jinfo -flag MaxHeapSize=200000 20780 - 拓展
java -XX:+PrintFlagsFinal >d:/1.txt 查看所有JVM最终参数 ,输出到指定位置
java -XX:+PrintFlagsInitial 查看所有JVM参数启动时的初始化值
java -XX:+PrintCommandLineFlags 查看那些被用户或者JVM设置过得详细的XX参数的名称和值
jmap 导出内存映射文件和内存使用情况 - 生成dump文件
手动生成
jmap -dump:format=b,file=d:\JVM\1.hprof 20556
生成堆内存中存活的对象dump文件
jmap -dump:live,format=b,file=d:\JVM\2.hprof 20556
自动生成设置
-XX:+HeapDumpOnOutOfMemoryError 发生OOM时生成快照
-XX:HeapDumpPath 指定生成快照文件地址 - 显示堆内存相关信息
jmap -heap 20556 >d:\JVM\A.txt 堆内存配置信息
jmap -histo 20556 >d:\JVM\B.txt 堆内存 对象占用情况
jstack 打印JVM中线程快照
jstack 20556
jstack -F 20556 正常输出请求不被响应时强制输出
jstack -l 20556 除堆栈外,显示锁的附加信息
jstack -m 20556 如果调用到本地方法,则显示C/C++堆栈信息
jstack -h 帮助操作
jcmd 多功能命令行
jcmd -l 列出所有的JVM进程
jcmd 20556 help 针对指定的进程列出支持的所有命令
jcmd 20556 具体命令 显示指定命令的数据