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

利用wsadmin生成javacore,heapdump文件

windows:

一、生成javacore文件

 1、启动wsadmin.bat ,路径为:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/

      

      输入命令行: cd /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin

                  ./wsadmin.bat

     

2、输入命令  wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=<server1>,*]       

    说明:上面中的<server1>要换成现场was服务的真实名称   

    比如在服务器上对应的服务名是sever1 ,命令行输入是:set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]

     

3、输入命令  wsadmin>$AdminControl invoke $jvm dumpThreads

      

        4、安装目录D:\IBM\WebSphere\AppServer\profiles\AppSrv01下生成javacore文件(例:javacore.20090804.111947.2632.txt)

              

        5、获取到javacore文件发回分析。

        6、如何解析这个Javacore文件?

             用javacore文件分析器对javacore文件进行分析

             cd /d javacore文件分析器放置路径>java -Xmx1000m -jar jca31.jar

 

二、生成heapdump文件

       注:具体步骤和生成Javacore文件类似,只是在命令行有差异:

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、如何分析heapdump文件?

     用heapdump文件分析器对heapdump文件进行分析

     cd /d heapdump文件分析器放置路径>java -Xmx1000m -jar ha33.jar

 

三、GC日志

在Websphere 中,如果想让GC服务器自动GC,可以做如下设置:

在Websphere的控制台,server-->server1--->Java and Process Management --->Process definition-->Java Virtual Machine,

在这个页面把 “Verbose garbage collection ” 勾上,

然后,在“Generic JVM arguments”那里添加如下参数:-verbose:gc -XX:+PrintGCDetails -Xverbosegclog:gc.log,

GC日志就会自动生成在你的server1 目录下了,可以通过一些工具来分析Websphere服务器的GC情况了。

Linux

一、生成javacore文件

      1、启动wsadmin.sh,路径为:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/wsadmin.sh

   

输入命令行: cd /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin

                      ./wsadmin.sh

注:输入命令行 ./wsadmin.sh 后,需要输入WebSphere控制台的用户名和密码。

    

 

2、输入命令  wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=<server1>,*]  

     说明:上面中的<server1>要换成现场was服务的真实名称   

    

     比如在服务器上对应的服务名是sever1 ,命令行输入是:set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]

    

3、输入命令  wsadmin>$AdminControl invoke $jvm dumpThreads

    

4、获取生成的javacore文件路径为:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01下生成javacore文件(例:javacore.20090804.111947.2632.txt)

    

5、将javacore文件发回分析即可。

6、如何分析Javacore文件?

     用javacore文件分析器对javacore文件进行分析

     cd /d javacore文件分析器放置路径>java -Xmx1000m -jar jca31.jar

 

注:若通过以上方法无法生成javacore文件,可通过以下两行命令生成:

[root@smartbiserver20 ~]# ps -ef|grep websphere

找到需要打印线程的WebSphere线程号:

  

[root@smartbiserver20 ~]# kill -3  13083

          

        获取文件路径:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01

         

二、生成heapdump文件

      方法一:

      注:具体步骤和Javacore文件生成差不多,只是差别在于命令:

       1、 启动wsadmin.sh,路径为:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/wsadmin.sh

     输入命令行: cd /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin

                      ./wsadmin.sh

     注:输入命令行 ./wsadmin.sh 后,需要输入WebSphere控制台的用户名和密码

2、输入命令  wsadmin>set objectName [$AdminControl queryNames WebSphere:type=JVM,process=<server1>,*]

    说明:上面中的<server1>要换成现场was服务的真实名称

    比如在服务器上对应的服务名是sever1 ,命令行输入是:set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]

3、 输入命令  wsadmin>$AdminControl invoke $objectName generateHeapDump

      注:如果复制命令不行,请手动输入命令行。

      

4、安装目录 /opt/IBM/WebSphere/AppServer/profiles/AppSrv01 下生成HeapDump文件(例:heapdump.20170719.100404.16398.0097.phd)

    

5、将heapdump文件发回分析即可。

6、如何对heapdump文件进行分析?

     用heapdump文件分析器对heapdump文件进行分析

     cd /d heapdump文件分析器放置路径>java -Xmx1000m -jar ha33.jar

方法二:


        说明:WebSphere出现无响应的时cpu使用率为0,并会自动重启,导致无法通过“方法一”获取heapdump信息。可提前在WebSphere控制台上增加以下参数并重启服务器,这样下次进行生成Javacore文件时,会自动同时生成heapdump信息:

        步骤:在WebSphere控制台, Servers(服务器) >WebSphere Application Server > server_name(如:server1) > Java和进程管理  > Process Definition (进程定义)> Environment Entries(环境条目) > New(新建
 增加以下信息

 

名称
IBM_HEAPDUMPtrue
IBM_HEAP_DUMPtrue
IBM_HEAPDUMPDIRyour_directory
IBM_HEAPDUMP_OUTOFMEMORYtrue
 IBM_JAVADUMP_OUTOFMEMORY true

 

注:其中第三条参数是为了指定生成heapdump文件的路径,可不填写,这样就会默认生成在和javacore文件相同的路径下。
当进行生成Javacore后,就会同时生成heapdump文件。

 

三、GC日志

在Websphere 中,如果想让GC服务器自动GC,可以做如下设置:

在Websphere的控制台,server-->server1--->Java and Process Management --->Process definition-->Java Virtual Machine,

在这个页面把 “Verbose garbage collection ” 勾上,

然后,在“Generic JVM arguments”那里添加如下参数:-verbose:gc -XX:+PrintGCDetails -Xverbosegclog:gc.log,

GC日志就会自动生成在你的server1 目录下了,可以通过一些工具来分析Websphere服务器的GC情况了。