虚拟机工具
2021-05-26 10:00:47 0 举报
AI智能生成
java虚拟机常用工具
作者其他创作
大纲/内容
获取dump的方法
XX:+HeapDumpOnOutOfMemoryError
-XX:+HeapDumpOnCtrlBreak参数则可以使用[Ctrl]+[Break]键让虚拟机生成堆转储快 照文件
kill -3
jmap
命令行
jps
查看虚拟机进程:jps [ options ] [ hostid ]
选项
-q
只显示pid,不显示class名称,jar文件名和传递给main方法的参数
-m
输出传递给main方法的参数,在嵌入式jvm上可能是null
-l
输出应用程序main class的完整package名或者应用程序的jar文件完整路径名
-v
输出传递给JVM的参数
-V
隐藏输出传递给JVM的参数
jstat
虚拟机统计信息:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]
选项(默认单位为kb)
-class
类加载统计
-compiler
编译统计
gc相关
-gc
垃圾回收统计
-gccapacity
堆内存统计,与gc输出一致,主要关注堆各个空间最大最小值
-gcnew
新生代垃圾回收统计
-gcnewcapacity
新生代内存统计
-gcold
老年代垃圾回收统计
-gcoldcapacity
老年代内存统计
-gcmetacapacity
元数据空间统计
-gcutil
总结垃圾回收统计
-printcompilation
JVM编译方法统计
jinfo
查看和调整虚拟机各项参数:jinfo [ option ] pid
选项
无选项
输出全部的参数和系统属性
-flag name
输出对应名称的参数
-flag [+|-]name
开启或者关闭对应名称的参数
-flag name=value
设定对应名称的参数
-flags
输出全部的参数
-sysprops
输出系统属性
jmap
java内存映射工具,用于生成堆转存快照(dump文件):jmap [ option ] vmid
选项
-dump:[live,]format=b,file=<filename>
生成java快照,live参数说明是否只dump存活对象
-finalizerinfo
打印正在等待回收(在F-Queue队列中,等待执行finalize方法)对象的信息
-heap
显示java堆详细信息,哪种回收配置,参数配置,分代信息等
-histo[:live]
打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.
-permstat
打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来
-F
强制输出信息
jhat
dump分析工具
jstack
java堆栈跟踪工具,生成当前时刻线程快照(threaddump或者javacore):jstack [ option ] vmid
选项
-F
强制输出线程堆栈
-l
除堆栈信息外,显示关于锁的附加信息
-m
如果是本地方法,可以显示c/c++的堆栈
/opt/java8/bin/jstack -l 28367 | grep 'java.lang.Thread.State' | wc -l
统计线程数
查看占用cpu过高线程信息
查看cpu过高进程(top)
查看cpu过高线程 (top -H -p 17850)
转换线程ID (printf "%x\n" 17880)
定位cpu占用线程(jstack 17850|grep 45d8 -A 30)
可视化
0 条评论
下一页