页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...


目录


_Toc505257932
_Toc505257932
堆信息的作用及应用场景

...

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

_Toc505257933
_Toc505257933
如何打印堆信息


_Toc505257934
_Toc505257934
通过命令行打印

    1)通过jps或netstat获取Java进程号:

    2)在JDK的bin目录运行生成整个堆Dump文件【jmap -dump:live,format=b,file=进程号.bin 进程号】
    Image Modified

Image Added

_Toc505257935
_Toc505257935
通过jvisualvm打印

    Image Modified

_Toc505257936
_Toc505257936
通过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
      Image Modified
    4)、安装目录D:\IBM\WebSphere\AppServer\profiles\AppSrv01下生成HeapDump文件(例 : heapdump.20170719.141911.10952.0003.phd)
      Image Modified
    5)、将获取都到的heapdump文件发回分析即可。

     6)、was如何分析heapdump文件?
     用heapdump文件分析器对heapdump文件进行分析
     cd /d heapdump文件分析器放置路径>java -Xmx1000m -jar ha33.jar

_Toc505257937
_Toc505257937
怎么分析堆信息

  1. 在JDK的Bin目录下打开jvisualvm.exe
  2. Jvisualvm装入hprof文件
    Image Modified
  3. 生成线程文件

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

      Image Modified

      4.  查询使用最多的smartbi类

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

...

   展开其中多个
   看是否同一个对象持有(如示例发现)
   Image Modified
   Image Modified  

...

   向下找到对应的对象
Image Modified
    点击查看具体的值
     Image Modified
    然后打开该报表验证设置的问题