共计 1571 个字符,预计需要花费 4 分钟才能阅读完成。
这篇文章将为大家详细讲解有关 jca 工具怎么分析 was 的 javacore,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
一朋友打电话求助,问怎样简单方便的分析 WAS 的 JAVACORE 文件。我给他做了个实例解析,下面是一个过程记录。
一、工具下载
可从 IBM 官网下载 JCA 工具,专门用来分析 JAVACORE 文件的工具。使用 JCA 工具需要 JAVA 环境,再下载一个 JDK。由于我们使用的 JCA 是 3.9.6 版,所以下载一个 JDK1.6 版的就行。
二、启动 JCA 工具
安装完 JDK1.6 后,配置 JAVA 环境。JAVA 环境的配置简单说一下:
打开 我的电脑 -- 属性 -- 高级 -- 环境变量
新建系统变量 JAVA_HOME 和 CLASSPATH
变量名:JAVA_HOME
变量值:C:\Program Files\Java\1.6.0_37
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把 JDK 安装路径中 bin 目录的绝对路径,添加到 Path 变量的值中,并使用半角的分号和已有的路径进行分隔。
变量名:Path
变量值:C:\Program Files\Java\1.6.0_37\bin;C:\Program Files\Java\1.6.0_37\jre\bin;
启动 JCA 工具
C:\jca396 java -Xmx2000M -jar jca396.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
如果出现这个错误,把内存分配小点就可以了。
C:\jca396 java -Xmx500M -jar jca396.jar javacore.20131101.txt
点开 waiting 状态比较多的事件,有如下显示
这是典型的 BLOCK 堆载,在 IBM 官网有相应的参考文章,解决这个问题一个比较简单的方法就是增大 WAS 的 JVM 大小。
三、解决问题
进入 WAS 控制台,找到 JVM 设置,进行调整。如图:
服务器 – 应用程序服务器 –app01– 进程定义 -Java 虚拟机
注:当部署在 websphere 上的应用出现了问题,比如调用缓慢,线程挂起,节点假死的时候,光看应用的 SystemOut.log 是不够的,我们还需要手动生成 javacore 文件,查询服务器上各个线程的堆栈情况,它可以具体到一个方法的调用情况。Javacore 是 Java 应用程序在某一时间的文本表示形式,也可理解为 Java Dump(通常称为 Thread Dump)的线程转储文件。该文件记录了整个 JVM 的运行情况,包含线程、垃圾回收、JVM 运行参数、内存地址等信息。JVM 的许多问题都可以用这个文件进行诊断,其中比较典型的包括线程阻塞、CPU 使用率过高、JVM Crash、堆内存不足和类装载等问题。
Javacore 文件通常以 *.txt 方式显示,名称格式主要是以 Javacore 为头,加上日期号、产生的时间号、当时的线程编号。
Javacore 文件的生成
ps -ef | grep java 查看进程 ID,在 linux 系统中 使用 kill -3 pid , 它会在应用程序的概要文件的目录下生成一个 javacore 文件,比如在 /usr/IBM/WebSphere/AppServer1/profiles/AppSrv01 下。
关于 jca 工具怎么分析 was 的 javacore 就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。