*jconsole*:一种基于JMX的可视化监控、管理工具。包括概述、内存(jstat)、线 程(jstack)、类(jstat)、vm概要(jinfo)
jvisualvm:主体功能和jconsole差别不大,区别在于:1.具备插件扩展的能力,2.能生成堆、栈的存储快照,3.分析程序性能
Eclipse Memory Analyzer:
*jps*:
jps主要用来输出JVM中运行的进程状态信息。语法格式如下:jps \[options\] \[hostid\] (如果不指定hostid就默认为当前主机或服务器)
-q 不输出类名、Jar名和传入main方法的参数
-m 输出传入main方法的参数
-l 输出main类或Jar的全限名
-v 输出传入JVM的参数
jstack:jstack \[option\] \[pid\]
用于生成虚拟机当前时刻的线程快照,包含虚拟机中每一个线程正在执行的方法堆栈的集合,用于定位线程出现长时间停顿的原因,如死锁、 死循环、外部资源长时间等待等
jmap、jhat:
jmap -permstat \[pid\] 打印进程的类加载器和类加载器加载的持久代对象信息
jmap -heap \[pid\] 查看进程堆内存使用情况:包括使用的GC算法、堆配置参数和各代中堆内存使用
jmap -histo\[:live\] \[pid\] 查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象
jmap导出堆内存,然后使用jhat来进行分析:
jmap -dump:format=b,file=/home/dump.dat \[pid\]
jhat -port 8888 /home/dump.dat(如果Dump文件太大,可能需要加上-J-Xmx512m参数以指定最大堆内存,即:jhat -J-Xmx512m -port 8888 /home/dump.dat)
然后就可以在浏览器中输入主机地址:8888查看了
jstat:
jstat(JVM统计监测工具),看看各个区内存和GC的情况
jstat -gc \[pid\] 250(时间间隔) 6(采样数目)
*jinfo*:实时查看和调整虚拟机各项参数
hprof:
hprof能够展现CPU使用率,统计堆内存使用情况
还没有评论,来说两句吧...