JProfiler jvm性能监控软件使用以及监控思路

.

一、JProfiler 安装 参考https://blog.csdn.net/baidu_19473529/article/details/72724114

二、JProfiler 软解介绍:

  Telemetries:遥测 该模块是对应用服务监控数据的一个图表概览

      

1、  Overview:概览,该以图表形式汇总了当前应用服务器的资源使用情况

2、  Memory:内存占用,统计内存已使用和空闲的空间

3、  Record Objects:堆实例对象记录,以数组和非数组形式来分类记录堆上的对象和数组数量

4、  Record Throughput:对象创建回收记录,记录单位时间间隔内对象创建和回收的数量

5、  GC Activity:垃圾回收,统计垃圾回收率

6、  Classes:类加载数量,分为CPU已加载和CPU未加载

7、  Thread:线程活动状态,线程活动数量

8、  CPU Load:单位时间间隔内CPU的占有率

应用技巧

Memory/Thread/CPU Load比较常用。

  • 若运行垃圾回收后,发现Memory还是内存回收不稳定,还是存在蓝色区域持续增高现象,可能系统出现内存泄漏
  • 若Thread模块出现多处红色标注的线程阻塞,说明系统有程序比较好使,需排查启用异步执行

Live memory:实时内存视图该模块动态显示对象堆内存的使用情况

    

1、All Object:所有对象,显示所有加载的类列表和堆上分配的实例数及占用的堆空间,可以安装不同的类型进行查看,例如:类,包,组件

2、Record Object:记录对象,显示所有已记录的类列表,堆上分配的实例数及占用的堆空间,可以按照不同的类型进行查看,例如:类,包,组件。
记录对象和所有对象的区别:记录对象是active,也就是说正在被使用或者已经被使用的对象,所有对象是指加载进来的所有对象。

3、Allocation Call Tree:分配访问树,分配调用树视图,可以根据请求方法,类,包,组件显示

4、Allocation Hot Spots:分配热点,显示所选类的对象被分配在哪儿的方法列表,分配至少占总数的1%才会被显示

5、Class Tracker:类跟踪器,显示类所标记的类或者包的实例随时间的变化

应用技巧

在这里可以查看类或者方法的内存占用情况,若发现某个类或者方法内存占用比较高,或者某段时间占用持续升高,就可以关注这个类或者方法,是不是采用类占用大量内存的手法。
点击【mark current values】可以对当前的监控数据进行标记,褐红色代表内存的占用情况,绿色代表参考时间点。这样就可以观察内存的使用,对象的创建和gc的使用情况等。
点击【mark current values】后,All Object和Record Object会多出一列Difference,该列显示类当前时间对象实例数量较之标记时刻对象实例数量的差值,以数字和百分比显示。

Heap Walker:堆遍历视图 该模块可以明确查看对象的引用关系,常用来查找内存泄漏问题。

      

应用技巧

当发现某个该释放掉的对象没有释放,就可以看一下哪个实例在引用它,找到了根即找到了溢出点。

例如,在Live Memory视图中发现某个类或者包持续消耗内存不释放,在该类或包上右键选择“show section in Heap Walker”,即可进入堆视图,在该视图查看对象堆内存具体分配情况,已经对象的引用和被引用情况。

CPU views:CPU视图从5个子分析视图共同组成,从不同层面展示类程序对cpu的使用情况

      

1、Call Tree:以树结构自顶向下显示线程方法调用树已经各个方法对cpu的使用情况

2、Hot Sports:显示消耗内存最多的类型树列表,每个节点显示具体方法占用cpu的比例

3、Call Graph:显示一个从已选方法,类,包或J2EE组件开始的访问队列的图

4、Method Statistics:记录了方法调用的时间细节

5、Call Tracer:记录多线程方法调用的时间顺序

6、JavaScript XHR Origin Tracking:js原始请求追踪,需要借助Google浏览器的扩展插件

应用技巧

观察某个时间段内线程对应cpu的使用情况,如果某个方法对cpu长时间的高频占用,那程序肯定会慢,这时就要检查该方法中是否有什么非常耗时的计算。

Threads:线程视图该模块主要用来监控管理线程的运行状态。

      

1、Threads History:动态显示线程列表及线程的历史运行状态
  绿色:表示线程正在运行并能接受CPU时间
  橙色:表示线程正在睡眠等待计时器或者其他线程唤醒
  红色:表示线程阻塞
  蓝色:表示线程Net I/O操作,线程在等待Java库的网络操作完成,在线程监听socket链接或者等待读写数据到socket中

2、Threads Monitor:显示所有线程的运行列表,包括执行状态,开始时间等

3、Threads Dump:显示所有线程的堆栈跟踪

应用技巧

根据Threads History可以查看当前系统是否有线程堵塞的情况。若存在,只需在当前线程右键选择“show call tree for selected Thread”,在call tree视图查看线程分配调用树以及cpu的占用率,在相关的类方法上右键选择“call graph ”可以直观查看线程调用树并追踪阻塞的方法或者类。

Monitor & locks:锁视图该模块显示类JVM内部锁及监控运行的状态

      

1、Current Locking Graph:显示JVM当前的锁定情况

2、Current Monitors:显示等待或者阻塞的线程

3、Locking History Graph:显示记录在JVM中锁定历史

4、Monitor History:显示历史等待或者阻塞的线程

5、Monitor Usage Statistics:静态计算统计监控器搜集的数据

应用技巧
通过Current Locking Graph可以很直观的查看当前线程锁定状态及线程和监视器的关系
  黄色箭头:线程等待
  红色箭头:线程死锁
  黑色箭头:指示了监视器对线程的所有权

三,分析思路

1、  windows JProfiler 连接到 linux 服务器 dwl项目

  日志中出现如下字样,说明连接成功

       

2、  点击Telementrise àMemory 查看新生代使用情况,是否有大幅度上升以及下降趋势

    

经查看,系统中新生代内存使用,呈现阶梯式上涨趋势,达到19MB时急速下降(有可能GC造成内存回收导致,待确认)

提出假设,是否有定时任务在自动执行,在不停创造新对象

3、  使用快照进行分析,快照开始时间为 33::53

      

在进行一次垃圾回后,停止快照,通过此时间段进行分析,下图为新生代垃圾回收情况

      

回到All Object 视图,查看是否有没有被回收的对象,

      

如果有,则跟踪这个对象,查看是被哪个。。。。。。。。先写到这

原文地址:https://www.cnblogs.com/xiaoyu1994/p/11395948.html

时间: 2024-08-21 23:28:19

JProfiler jvm性能监控软件使用以及监控思路的相关文章

企业级监控软件使用zabbix监控IOPS

01.在服务端创建zabbix组 configuration---Templates---create template---Template Linux  Disk IO===其中选择组为"Template" 在Template Linux Disk IO中创建Discovery rule: Name: Disk device  discovery Key: custom.vfs.dev.discovery Filter Macro{#DISK} [email protected] 

65.常见开源监控软件、zabbix监控介绍、配置

一.常见开源监控软件 cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios.zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图 open-falcon为小米公司开发,开源后受到诸多大公司和运

电脑桌面监控软件都能监控到什么?聊天记录?能防止企业员工泄密吗?

计算机网络是一个开放.自由.互连.共享的平台,是现代社会信息存储.传播和使用过程中最重要的载体,它增强了信息流通的灵活性和便利性,同时也给涉 密信息的安全带来了巨大挑战.网络窃密和反窃密的斗争愈演愈烈,据全国人大内务司法委员会的一项调研报告显示,目前计算机网络泄密事件已占泄密总数的 70%以上,并呈逐渐增长趋势.如何更有效地保护涉密信息和防止网络失泄密事件的发生? 网络泄密是指以网络为载体,使不对外公开的信息被非授权主体知悉的行为.网络窃密的手段多种多样,造成网络失泄密事件的原因也各有不同,归结

现在的局域网监控软件需要具备那些功能?

局域网在网络环境中是一个比较小的规模,所涉及到的区域相对于广域网要狭小的许多.至于局域网监控软件是专门应用于在这个部分里面的监控.局域网监控软件在聊天记录和控制上网功用以及USB阻止上面有一些自己的特征,超级眼局域网监控软件简易的操作以及强大的功能受到很多用户的青睐.咱们有时候需要用到一些监控软件来监控自己周围的一些聊天记录或是共享文件管理.一般的监控软件只能监控够到一些对方没有删去的记录,但是于其他监控软件不同的是,局域网监控软件不只可以监控到没有删去的记录,即使是对方删去掉没有保存的记录都可

局域网监控软件——邮件监控

随着互联网的飞速发展,电子邮件的使用越来越普遍,不仅成为企业内部的沟通桥梁,也是企业和外部进行各类业务往来的重要管道,为保护商业秘密不通过邮件外泄,成为企业的一件大事,邮件监控也就越来越重要. 比起传统信件,E-MAIL速度快,还更有效率,在许多企业,电子邮件已渐渐具备正式公文的性质,企业档案资料的管理已不仅限于各类纸张文挡,也包括各类来往的电子邮件.企业对电子邮件进行监控和备份,可对企业对内对外的档案进行更有效的管理. 方便的E-MAIL,也可能被员工当作有意或无意泄漏机密的主要管道.据调查美

公司要安装电脑监控软件你同意吗?

为了提高员工的工作效率,保护公司的信息文件安全现在有不少的公司为了方便管理会在电脑上安装一些监控软件,来监控员工办公的情况.一些 公司会明确告诉员工有监控,有些则不然,所以有的人真的是死都不知道自己怎么死的. 企业主认为:"员工将8小时内的时间给了公司,那么这8小时内就应该全身心的投入工作,既然是为了工作,对员工的电脑实施监控并没有侵犯员 工的隐私权. 员工认为:"既然不允许上班时间浏览其他网站,那么可以直接对上网权限进行限制,以这样的理由安装监控软件,明显侵犯了员工的隐私权.&quo

第八章 JVM性能监控与故障处理工具(2)

注意:该篇博客主要记录自<深入理解java虚拟机(第二版)> 说明:关于命令行的JVM性能监控与故障处理工具见<第七章 JVM性能监控与故障处理工具(1)> 1.图像化的故障处理工具 Jconsole visualVM 2.Jconsole 进入"E:\Java\jdk1.6\bin",双击"jconsole.exe",弹出如下框: 说明:这里列出了所有的JVM进程,一个Jconsole进程,一个eclipse(PID:4684),这相当于j

【008】【JVM——性能监控与故障处理工具】

 JVM--性能监控与故障处理工具 HotSpot虚拟机提供了许多虚拟机运行时调试工具,方便开发人员在应用运行时对虚拟机和应用性能进行监控和优化. jps:JVM Process Status Tool 显示指定系统内所有的HotSpot 虚拟机进程.并显示虚拟机执行主类(Main Class, main()函数所在的类)的名称,以及这些进程的本地虚拟机的唯一ID ( LVMID, Local Virtual Machine Identifier) . jps 命令格式:jps [ opti

JVM性能监控与故障处理工具

jdk为我们提供了一系列的jvm性能监控和故障处理工具,在这里根据学习进度进行整理记录.便于之后查阅 1.jps 虚拟机进程工具  类似于Linux系统中的ps命令,用于查看虚拟机进程,常用的有以下功能 jps -l    显示虚拟机进程id以及进程主类 jps -q  只显示进程id,不显示主类名称 jps -m  显示进程id以及传递给main的参数 jps -v 输出虚拟机进程启动时的jvm参数 2.jstat 虚拟机统计信息监视工具 该工具是用于监视虚拟机各种运行状态信息的命令行工具