JDK的bin目录下自带一些工具,有jps,jstat,jinfo,jmap,jhat,jstack,jconsole,HSDIS
jps 虚拟机进程状况工具
类似linux的ps命令,列出虚拟机进程,与进程关联的执行主类名,以及进程的ID(本地虚拟机唯一ID LVMID)
jsp [option] [hostid]
[]中的内容代表可有可无 option代表参数,hostid虚拟机进程id
-l 主类全名 -q 只输出id
jstat 监视虚拟机各种运行状态
jstat [option vmid [interval[s|ms] [count]] ]
举例 jstat -gc 2764 250 20
-gc option 查询java堆各个区域容量以及gc的运行时间 2764 虚拟机进程id 250 间隔时间 20 查询次数 每隔250ms查询2764进程的gc运行状况,查询20次结束
jinfo 实时地查看和调整虚拟机各项参数
jinfo [option] pid
jmap 堆转储
jamp [option] vmid
-dump 堆转储 -heap显示java堆详细信息(收集器 参数配置)
-F 强制输出
jhat 分析jmap生成的堆dump
jhat xxxx.bin
jstat 生成当前时刻线程快照(线程的堆栈集合)
线程死锁 死循环 停顿 通过此方法进行查看
jstack [option] vimd
jconsole 可视化工具
内存监控=jsta命令
线程监控=jstack (线程会出现 1.死循环 2.等待 3.死锁)
死锁代码示例
死锁产生原因
Integer.valueOf()会将[-128,127]缓存 1,2在此区间 会出现一个线程持有1对象需要2对象,另一个线程持有2对象需要1对象
VisualVM 多合一故障处理工具
以上所有的集合还有扩展 强的一批