一、总体介绍
二、命令行工具
1、jps
类似于ps,列出正在运行的虚拟机进程。显示如下内容:虚拟机执行主类、LVMID(非常重要,其他命令都
需要输入该id)
需要输入该id)
命令格式:
jps[ options]
VMID = [protocol:][//] lvmid[@ hostname[: port]/ servername]
查询实例:
2、jstat
可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。是定位虚拟机问题的首选 工具
命令格式:
jstat[ option vmid[ interval[ s| ms][ count]]]
重点介绍下 -gc: 该命令可以查看虚拟机的核心部件:垃圾收集的情况(内存占用、gc时间...)
S0C:年轻代中第一个survivor(幸存区)的容量 (字节)S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
EC:年轻代中Eden(伊甸园)的容量 (字节)
EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
OC:Old代的容量 (字节)
OU:Old代目前已使用空间 (字节)
PC:Perm(持久代)的容量 (字节)
PU:Perm(持久代)目前已使用空间 (字节)
YGC:从应用程序启动到采样时年轻代中gc次数
YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
FGC:从应用程序启动到采样时old代(全gc)gc次数
FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)
3、jinfo
实时地查看和调整虚拟机各项参数
命令格式:
jinfo[ option] pid
查询实例:
4、jmap
用于生成堆转储快照
命令格式:
jmap[ option] vmid
查询实例:
5、jstack
生成虚拟机当前时刻的线程快照
命令格式:
jstack[ option] vmid
查询实例:
三、可视化工具
VisualVM
可视化工具完成的功能与上述java命令差不多,就是更加直观.
插件中心地址:http://visualvm.java.net/pluginscenters.html
插件中心地址:http://visualvm.java.net/pluginscenters.html
通过几张截图了解下功能:
四、第三方工具
1、btrace
Btrace是由sundararajan在开发的一个开源项目,始创于2009年6月,是一种动态跟踪分析一个运行中的Java应用程序的工具。
2、greys-anatomy
greys-anatomy是btrace的扩展工具,对常用的功能进行的封装。而且提供交互式命令行界面完成相应的操作。
安装:curl -sLk http://ompc.oss.aliyuncs.com/greys/install.sh|ksh
安装:curl -sLk http://ompc.oss.aliyuncs.com/greys/install.sh|ksh
使用步骤:
第一步:启动greys,进入命令行界面
第二步:执行跟踪注入命令,即可获取正在运行方法的各种信息
举例:数据门户首页Index类完成后,输出context中的empId
第三步:ctrl +D后继续输入其他监控命令
功能:
monitor: 对匹配的方法调用进行监控
profiler:对正则匹配的方法进行埋点监控。统计整个调用链路上的性能开销
watch:观察匹配方法的内存对象
入参、返回值、异常、当前对象
tt: 拥有时间维度的watch命令
jstack:查看某个方法的调用链路
这里只是列举了部分功能,详细介绍文档:
https://github.com/oldmanpushcart/greys-anatomy/wiki/Commands#monitor