久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java中的JavaCore/HeapDump文件及其分析方法 – 碼農(nóng)網(wǎng)

 liang1234_ 2016-03-26

產(chǎn)生時(shí)間

Java程序運(yùn)行時(shí),有時(shí)會(huì)產(chǎn)生JavaCore及HeapDump文件,它一般發(fā)生于Java程序遇到致命問(wèn)題的情況下,。

有時(shí)致命問(wèn)題發(fā)生后,,Java應(yīng)用不會(huì)死掉,,還能繼續(xù)運(yùn)行,;

但有時(shí)致命問(wèn)題發(fā)生,,Java進(jìn)程會(huì)死掉,;

為了能夠保留Java應(yīng)用發(fā)生致命錯(cuò)誤前的運(yùn)行狀態(tài),,JVM在死掉前產(chǎn)生兩個(gè)文件,分別為JavaCore及HeapDump文件,。

有何區(qū)別

JavaCore是關(guān)于CPU的,,而HeapDump文件是關(guān)于內(nèi)存的。

JavaCore文件主要保存的是Java應(yīng)用各線程在某一時(shí)刻的運(yùn)行的位置,,即JVM執(zhí)行到哪一個(gè)類(lèi),、哪一個(gè)方法,、哪一個(gè)行上。它是一個(gè)文本文件,,打開(kāi)后可以看到每一個(gè)線程的執(zhí)行棧,,以stack trace的顯示。通過(guò)對(duì)JavaCore文件的分析可以得到應(yīng)用是否“卡”在某一點(diǎn)上,,即在某一點(diǎn)運(yùn)行的時(shí)間太長(zhǎng),,例如數(shù)據(jù)庫(kù)查詢(xún),長(zhǎng)期得不到響應(yīng),,最終導(dǎo)致系統(tǒng)崩潰等情況,。

HeapDump文件是一個(gè)二進(jìn)制文件,它保存了某一時(shí)刻JVM堆中對(duì)象使用情況,,這種文件需要相應(yīng)的工具進(jìn)行分析,,如IBM Heap Analyzer這類(lèi)工具。這類(lèi)文件最重要的作用就是分析系統(tǒng)中是否存在內(nèi)存溢出的情況,。

怎么生成

這兩個(gè)文件可以用手工的方式生成,,當(dāng)我們會(huì)遇到系統(tǒng)變慢或無(wú)響應(yīng)的情況,這時(shí)就以采用手工的方式生成JavaCore及HeapDump文件,。

在Unix/Linux上,,產(chǎn)生這兩個(gè)文件的方法如下:

# ps -ef | grep java  user 4616 4582 0 17:30 pts/0 00:00:00 grep java  root 5580 1 0 Oct27 ? 00:02:27 /usr/bin/java -server -XX:PermSize=64M -XX:MaxPermSize=128m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/tomcat8090/conf/logging.properties -Djava.endorsed.dirs=/usr/local/tomcat8090/endorsed -classpath :/usr/local/tomcat8090/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat8090 -Dcatalina.home=/usr/local/tomcat8090 -Djava.io.tmpdir=/usr/local/tomcat8090/temp org.apache.catalina.startup.Bootstrap start  # kill -3 5580

首先,找出Java進(jìn)程id ,,然后再執(zhí)行‘kill -3 進(jìn)程號(hào)’的操作,,等文件生成后再做一次同樣的操作,再產(chǎn)生一組文件,。

如何分析

JavaCore文件

兩組文件在分析JavaCore時(shí)特別有效,,因?yàn)樗梢钥闯鲈谙群髢蓚€(gè)時(shí)間點(diǎn)上,線程執(zhí)行的位置,,如果發(fā)現(xiàn)先后兩組數(shù)據(jù)中同一線程都執(zhí)行在同一位置,,則說(shuō)明此處可能有問(wèn)題,因?yàn)槌绦蜻\(yùn)行是極快的,,如果兩次均在某一點(diǎn)上,,說(shuō)明這一點(diǎn)耗時(shí)是很大的,通過(guò)對(duì)這兩個(gè)文件進(jìn)行分析,,查出原因,,進(jìn)而解決問(wèn)題。

JavaCore文件的頭部有一個(gè)“Current Thread Details”標(biāo)記,,它記錄了JavaCore產(chǎn)生時(shí)系統(tǒng)運(yùn)行的線程id,,使用線程id在文件中查找線程的詳細(xì)信息,該信息中記載了線程運(yùn)行哪個(gè)類(lèi)的時(shí)候造成的JavaCore。

NULL ------------------------------------------------------------------------  0SECTION TITLE   subcomponent dump routine  NULL ===============================  1TISIGINFOOUTOFMEMORY received  1TIDATETIME Date: 2011/12/07 at 15:59:42  1TIFILENAME Javacore filename:/usr/WebSphere/AppServer/profiles/WCSProdNode2/javacore19202086.1323298782.txt  NULL ------------------------------------------------------------------------  0SECTION XHPI subcomponent dump routine  NULL   ==============================  1XHTIME Wed Dec 7 15:59:42 2011  1XHSIGRECV Unexpected   signal -1 received at   0x0 in . Processing   terminated.  1XHFULLVERSION J2RE 1.4.2 IBM AIX build ca142ifx-20090918 (SR13   FP2)  NULL            1XHCURRENTTHD Current Thread   Details  NULL ----------------------  2XHCURRSYSTHD 'WebContainer :   5' sys_thread_t:0x45FB5328  3XHNATIVESTACK Native Stack  NULL ------------  3XHSTACKLINEERR unavailable -   stack address not valid  :::  :::  0SECTION XM subcomponent   dump routine  NULL ============================  NULL             1XMCURTHDINFO Current Thread Details  NULL ----------------------  3XMTHREADINFO 'WebContainer : 5' (TID:0x70A8E260, sys_thread_t:0x45FB5328, state:R, native ID:0x5CC0)   prio=5 4XESTACKTRACE at   org.apache.taglibs.standard.tag.common.core.ImportSupport$ImportResponseWrapper.getString(Unknown   Source)  4XESTACKTRACE at   org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(Unknown   Source)  4XESTACKTRACE at   org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(Unknown   Source)  4XESTACKTRACE at   com.ibm._jsp._part._jspx_meth_c_import_3(_part.java(Compiled Code))  4XESTACKTRACE at   com.ibm._jsp._part._jspx_meth_c_otherwise_3(_part.java(Compiled   Code))  4XESTACKTRACE at   com.ibm._jsp._part._jspx_meth_c_choose_4(_part.java(Compiled Code))  4XESTACKTRACE at   com.ibm._jsp._part._jspService(_part.java:3237)

這樣結(jié)合當(dāng)時(shí)的日志文件可以找到問(wèn)題產(chǎn)生的原因,。不過(guò),,這種方法只能找到不是內(nèi)存溢出的錯(cuò)誤,對(duì)于在core文件頭就有java/lang/outMemoryException的錯(cuò)誤還是不知道是執(zhí)行到哪個(gè)類(lèi)的時(shí)候出現(xiàn),。

HeapDump文件

HeapDump文件是指定時(shí)刻的Java堆棧的快照,,是一種鏡像文件。Heap Analyzer工具通過(guò)分析HeapDump文件,,哪些對(duì)象占用了太多的堆??臻g,來(lái)發(fā)現(xiàn)導(dǎo)致內(nèi)存泄露或者可能引起內(nèi)存泄露的對(duì)象,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多