您的位置:首页 > 运维架构

虚拟机性能监控与故障处理工具(笔记)

2018-08-24 23:04 134 查看

一、JDK的命令行工具

Sun JDK监控和故障处理工具

名称 主要作用 使用示例
jps jvm process status tool,显示指定系统内所有的hotspot虚拟机进程 jps -1
jstat    jvm statistics monitoring tool,用于收集hotspot虚拟机各方面的运行数据 jstat -gc 2764 250 20(每250毫秒查询一次进程2764的垃圾收集状况,一共查询20次
jinfo  configuration info for java,显示虚拟机配置信息 jinfo -flag CMSInitiatingOccupancyFraction 1444
jmap   memory map for java,生成虚拟机的内存转储快照(heapdump文件) jmap -dump:format:b,file=eclipse.bin 3500
jhat  jvm heap dump browser,用于分析heapmap文件,它会建立一个http/html服务器。让用户可以在浏览器上查看分析结果 jhat eclipse.bin(然后在网页中访问http://localhost:7000/)
jstack  stack trace for java ,显示虚拟机的线程快照 jstack -1 3500

 

 

 

 

 

 

 

 

 

 

补充:HSDIS——JIT生成代码反汇编

二、JDK的可视化工具

1、JConsole:Java监视与管理控制台

1.1.步骤

A、定位到Java的bin中,并启动jconsole

B、选择要监控的线程进行连接

C、进入后的界面

1.2、功能:内存监控、线程监控等。

线程长时间停顿的原因主要有:等待外部资源(数据库连接、网络资源、设备资源)、死循环、锁等待(活锁和死锁)等等。

2、Visual VM

2.1.安装教程:https://www.cr173.com/html/154033_1.html?_t_t_t=0.40491768484935164

2.2.优点:不需要被监视的程序基于特殊Agent运行,因此它对应用程序的实际性能的影响很小。

2.3.功能:

A、生成、浏览堆转存快照。

B、分析程序性能。

程序运行期间方法级的CPU执行时间分析以及内存分析,做profiling分析肯定会对程序运行性能有比较大的影响,所以一般不在生产环境中使用这项功能。

CPU分析:将会统计每个方法执行的次数、执行耗时;内存分析:会统计每个方法关联的对象数以及这些对象所占的空间。

注意点:Visual VM的Profiler功能可能会因为类共享而导致被监视的应用程序崩溃,所以要提前使用-Xshare:off参数来关闭类共享优化。

C、BTrace动态日志跟踪。

在不停止目标程序运行的前提下,通过HotSpot虚拟机的HotSwap技术动态加入原本不存在的调试代码。

 

博文内容来自《深入理解Java虚拟机》

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: