共計 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 就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。