页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

版本 1 下一个 »

一、 堆信息的作用及应用场景
二、 如何打印堆信息
1. 通过命令行打印
2. 通过jvisualvm打印
3. 通过was命令行打印
三、 怎么分析堆信息

堆信息的作用及应用场景

主要用于跟踪服务器出现内存泄漏的情况(如客户现场系统占用内存异常的大并且GC之后不释放),也可以跟踪当服务器出现死锁时,死锁线程的局部参数,可以更有效率的定位。

如何打印堆信息


通过命令行打印

1)通过jps或netstat获取Java进程号:
2)在JDK的bin目录运行生成整个堆Dump文件【jmap -dump:live,format=b,file=进程号.bin 进程号】

通过jvisualvm打印

通过was命令行打印


1)、启动wsadmin.bat ,路径为:D:\IBM\WebSphere\AppServer\profiles\AppSrv01\bin
      输入命令行: cd D:\IBM\WebSphere\AppServer\profiles\AppSrv01\bin
                  ./wsadmin.bat
2)、输入命令  wsadmin>set objectName [$AdminControl queryNames WebSphere:type=JVM,process=<server1>,*]
     说明:上面中的<server1>要换成现场was服务的真实名称
     比如在服务器上对应的服务名是server1 ,命令行输入是:set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]
3)、输入命令  wsadmin> $AdminControl invoke $objectName generateHeapDump
     
4)、安装目录D:\IBM\WebSphere\AppServer\profiles\AppSrv01下生成HeapDump文件(例 : heapdump.20170719.141911.10952.0003.phd)
     
5)、将获取都到的heapdump文件发回分析即可。
6)、was如何分析heapdump文件?
     用heapdump文件分析器对heapdump文件进行分析
     cd /d heapdump文件分析器放置路径>java -Xmx1000m -jar ha33.jar

怎么分析堆信息

  1. 在JDK的Bin目录下打开jvisualvm.exe


  1. Jvisualvm装入hprof文件



  1. 生成线程文件

这一步后面需要看线程信息时再生成也成,这里生成的线程和命令行生成的线程是有些区别的,它还含有一些局部变量的信息。

  1. 查询使用最多的smartbi类


点击数量极大的类,这里是smartbi.freequery.querydata.CellData

展开其中多个
看是否同一个对象持有


向下找到对应的对象

点击查看具体的值

然后打开该报表验证设置的问题

  • 无标签