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

利用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服务的真实名称   

   如果websphere是集群部署环境,通过process查找时,会有多个java进程匹配,此时可以增加条件判断条件过滤出需要打印线程的进程。

wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=<服务器>,platform=proxy.node=<节点>,*]

如下图,可以匹配服务器和节点名称来获取需要打印线程的进程。

如下图,执行set命令,返回多个进程信息,说明匹配不成功。新增判断条件,最终返回一条我们指定的java进程信息,此时就可以打印堆或线程了

    比如在服务器上对应的服务名是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情况了。

  • 无标签