当前位置:Gxlcms > 数据库问题 > 性能监控之可视化故障处理工具 JHSDB

性能监控之可视化故障处理工具 JHSDB

时间:2021-07-01 10:21:17 帮助过:39人阅读

com.ryj.hotspot; import java.io.IOException; import org.omg.CORBA.ObjectHolder; public class JHSDB_Test { static class Test { static ObjectHolder staticObj = new ObjectHolder(); ObjectHolder instanceObj = new ObjectHolder(); void foo() { ObjectHolder localObject = new ObjectHolder(); while (true) { try { Thread.sleep(6000 * 1000l); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } public static void main(String[] args) { Test test = new JHSDB_Test.Test(); test.foo(); } }

    2.2 找到java进程号

C:\Program Files\Java\jdk1.8.0_144\bin>jps -l
8400

     2.3 启动JHSDB

C:\Program Files\Java\jdk1.8.0_144\lib>java -cp .\sa-jdi.jar sun.jvm.hotspot.HSDB

     如果出现报错信息,需要将缺少的文件移动到该lib目录下

技术图片

    2.4 在打开的窗口中输入进程号

技术图片技术图片

 

 

  • Inspector:查看 OOP 和 Klass 对象信息,双击线程名称也能够查看此信息
  • Stack Memory:线程栈内存
  • Show Java Stack Traces:显示线程堆栈信息
  • Show Thread Infomation:显示线程信息
  • Find Crashes  

3.JHSDB实战

  3.1 查看堆信息

  可以通过Tools -> Heap Parameters 查看或通过Windows -> Console执行命令

hsdb> universe
Heap Parameters:
ParallelScavengeHeap [ PSYoungGen [ eden =  [0x00000000d5d80000,0x00000000d5f73368,0x00000000d7e00000] , from =  [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000] , to =  [0x00000000d7e00000,0x00000000d7e00000,0x00000000d8300000]  ] PSOldGen [  [0x0000000081800000,0x0000000081800000,0x0000000086d80000]  ]  ]

     3.2 查找对象内存地址

hsdb> scanoops 0x00000000d5d80000 0x00000000d8800000 com.ryj.hotspot.JHSDB_Test$ObjectHolder

    由于本地环境 scanoops命令报错,后续参考  https://www.bilibili.com/video/av95220376/

性能监控之可视化故障处理工具 JHSDB

标签:imp   ref   双击   简介   rac   public   需要   mat   generate   

人气教程排行