最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVACORE與HEAPDUMP生成方法

 更新時(shí)間:2024年08月14日 10:36:11   作者:Z.Virgil  
JavaCore文件主要保存的是Java應(yīng)用各線程在某一時(shí)刻的運(yùn)行的位置,即JVM執(zhí)行到哪一個(gè)類、哪一個(gè)方法、哪一個(gè)行上,它是一個(gè)文本文件,打開后可以看到每一個(gè)線程的執(zhí)行棧,以stack?trace的顯示,本文介紹JAVACORE與HEAPDUMP生成大法,感興趣的朋友跟隨小編一起看看吧

前言

在項(xiàng)目上我們經(jīng)常要生成javacore和heapdump來進(jìn)行分析。這里總結(jié)一下我自己在項(xiàng)目上生成這兩個(gè)文件的方法。

JAVACORE篇:

JavaCore文件主要保存的是Java應(yīng)用各線程在某一時(shí)刻的運(yùn)行的位置,即JVM執(zhí)行到哪一個(gè)類、哪一個(gè)方法、哪一個(gè)行上。它是一個(gè)文本文件,打開后可以看到每一個(gè)線程的執(zhí)行棧,以stack trace的顯示。

通過對JavaCore文件的分析可以得到應(yīng)用是否“卡”在某一點(diǎn)上,即在某一點(diǎn)運(yùn)行的時(shí)間太長,例如數(shù)據(jù)庫查詢,長期得不到響應(yīng),最終導(dǎo)致系統(tǒng)崩潰等情況。

Windows平臺:

ORACLE JDK:HOTSPOT

1.jvisualvm工具

jvisualvm是sun的JDK中自帶的工具,在java_home/bin/jvisualvm.exe中就可以打開。

掛在到對應(yīng)的java進(jìn)程后,可以直接生javacore。

2.jstack工具

jstack為JDK自帶的命令行工具。

可以通過jstack -l -r -pid的方式生成對應(yīng)的javacore。

其中-l -r 可以顯示出詳細(xì)信息,鎖信息等。

3.sendsignal工具

sendsignal工具是老外開發(fā)的一個(gè)小工具,用來生成已知進(jìn)程號的java進(jìn)程的javacore。

附件中有具體工具。通過sendsignal.exe pid即可生成。

4.ctrl+break按鍵

在Windows上啟動(dòng)程序的時(shí)候,可以直接在啟動(dòng)進(jìn)程的窗口按組合鍵生成javacore。

然而由于NC涉及到兩個(gè)java進(jìn)程,一個(gè)小的導(dǎo)程序,一個(gè)是正式的程序。

所以用該方法只能生成引導(dǎo)程序的javacore。看不到生產(chǎn)環(huán)境的實(shí)際快照。

IBM JDK:V9

1.系統(tǒng)宕機(jī)自動(dòng)生成。

IBM的JDK在系統(tǒng)宕機(jī)的時(shí)候會自動(dòng)生成javacore,這也是我們經(jīng)常用該JDK替換默認(rèn)的緣故。

2.sendsignal工具。

3.ctrl+break組合鍵。

4.NMC控制臺。(內(nèi)部監(jiān)控工具)

某產(chǎn)品自帶的監(jiān)控工具NMC可以直接點(diǎn)擊對應(yīng)server,右鍵直接生成javacore。

該工具只針對于Websphere集群生效。對于單機(jī) websphere或者NC中間件不生效。

5.Websphere控制臺

有的時(shí)候我們發(fā)現(xiàn),系統(tǒng)卡死,或者需要同時(shí)生成多個(gè)Server的javacore的時(shí)候,

我們就需要在websphere的控制臺中直接生成。

生成方式為Troubleshooting->Java dumps and cores。

6.JSP小補(bǔ)丁程序。         

使用方式為,將javacore.jsp放置到nchome/webapps/nc_web下即可,重啟生效。

訪問的時(shí)候,通過ip地址+端口+javacore.jsp即可在JAVA_HOME中生成。

如127.0.0.1:9081/javacore.jsp。代碼如下

<%com.ibm.jvm.Dump.JavaDump();%>

主要調(diào)用IBM的JDK內(nèi)部方法com.ibm.jvm.Dump.JavaDump();

LINUX平臺:                  

1.kill -3 -pid

在linux平臺上,除了之前的各種方法之外,可以直接調(diào)用系統(tǒng)的kill -3方法。       

HEAPDUMP篇:

HeapDump文件是一個(gè)二進(jìn)制文件,它保存了某一時(shí)刻JVM堆中對象使用情況。

這種文件需要相應(yīng)的工具進(jìn)行分析,如IBM Heap Analyzer這類工具。這類文件最重要的作用就是分析系統(tǒng)中是否存在內(nèi)存溢出的情況。

Windows平臺:

ORACLE JDK:HOTSPOT

1.jvisualvm工具。

和之前生成javacore的方法類似。

2.jmap方法。

map方法為JDK自帶的方法。通過命令行的方式生成。

<%
com.ibm.jvm.Dump.JavaDump();
%>

3.系統(tǒng)宕機(jī)自動(dòng)生成。

由于oracle的JDK在宕機(jī)的時(shí)候,不會自動(dòng)生成heapdump文件。需要我們通過添加JVM參數(shù)的方式來顯示申明。

在JVM參數(shù)中 加-XX:+HeapDumpOnOutOfMemoryError。

4.通過windows任務(wù)管理器。

windows的任務(wù)管理器可以直接將java的堆對象全部轉(zhuǎn)儲出來。

只需要點(diǎn)擊右鍵進(jìn)行保存即可。保存后的文件需要通過類似IBM的MAT分析工具打開。

IBM JDK:V9

1.系統(tǒng)宕機(jī)自動(dòng)生成。

2.利用coredump功能。

利用websphere自帶的coredump功能,可以將所有宕機(jī)時(shí)的堆棧信息全部輸出。

包含堆中對象的具體信息,如hashmap中的鍵值都可以看到具體的值。

是跟蹤宕機(jī)問題的終極法寶。

具體方法為,在JVM中添加參數(shù)
-Xdump:system:events=user,request=exclusive+prewalk+compact

3.JSP小補(bǔ)丁程序。

使用方式為,將heapdump.jsp放置到nchome/webapps/nc_web下即可,重啟生效。

訪問的時(shí)候,通過ip地址+端口+heapdump.jsp即可在JAVA_HOME中生成。

如127.0.0.1:9081/heapdump.jsp。代碼如下

<%
com.ibm.jvm.Dump.HeapDump();
%>

主要調(diào)用IBM的JDK內(nèi)部方法com.ibm.jvm.Dump.HeapDump();

LINUX平臺:

和上面的生成方法沒有太大區(qū)別。

以上為目前我總結(jié)的所有關(guān)于javacore和heapdump的收集方法。

在搜集項(xiàng)目報(bào)錯(cuò)信息以及定位問題的時(shí)候非常關(guān)鍵。

到此這篇關(guān)于JAVACORE與HEAPDUMP生成大法的文章就介紹到這了,更多相關(guān)JAVACORE與HEAPDUMP生成內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java報(bào)錯(cuò):Java.io.FileNotFoundException解決方法

    Java報(bào)錯(cuò):Java.io.FileNotFoundException解決方法

    這篇文章主要介紹了Java.io.FileNotFoundException的產(chǎn)生原因和解決方法,造成這個(gè)報(bào)錯(cuò)的原因可能有文件路徑錯(cuò)誤、文件被刪除或移動(dòng)和權(quán)限問題,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-12-12
  • SpringCloud中的Ribbon負(fù)載均衡器詳細(xì)解析

    SpringCloud中的Ribbon負(fù)載均衡器詳細(xì)解析

    這篇文章主要介紹了SpringCloud中的Ribbon負(fù)載均衡器詳細(xì)解析,Ribbon 是一個(gè)基于 HTTP 和 TCP 的客戶端負(fù)載均衡工具,它基于 Netflix Ribbon 實(shí)現(xiàn),通過封裝可以讓我們輕松地將面向服務(wù)的 REST 模版請求自動(dòng)轉(zhuǎn)換成客戶端負(fù)載均衡的服務(wù)調(diào)用,需要的朋友可以參考下
    2024-01-01
  • Java 對HashMap進(jìn)行排序的三種常見方法

    Java 對HashMap進(jìn)行排序的三種常見方法

    這篇文章主要介紹了Java 對HashMap進(jìn)行排序的三種常見方法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-10-10
  • Java串口通信入門

    Java串口通信入門

    串口通信是一種用于在計(jì)算機(jī)和外部設(shè)備之間進(jìn)行數(shù)據(jù)交換的通信方式,本文主要介紹了Java串口通信入門,并提供一個(gè)簡單的示例來演示如何在Java中進(jìn)行串口通信,感興趣的可以了解一下
    2023-11-11
  • Python學(xué)習(xí)之書寫格式及變量命名

    Python學(xué)習(xí)之書寫格式及變量命名

    這篇文章我們給大家總結(jié)了關(guān)于Python書寫格式及變量命名,小編覺得這篇文章寫的還不錯(cuò),有興趣的朋友跟著參考學(xué)習(xí)下,希望能夠給你帶來幫助
    2021-10-10
  • Java代碼里如何拼接SQL語句到mybatis的xml

    Java代碼里如何拼接SQL語句到mybatis的xml

    這篇文章主要介紹了Java代碼里拼接SQL語句到mybatis的xml操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 關(guān)于SpringBoot改動(dòng)后0.03秒啟動(dòng)的問題

    關(guān)于SpringBoot改動(dòng)后0.03秒啟動(dòng)的問題

    這篇文章主要介紹了SpringBoot改動(dòng)后0.03秒啟動(dòng),本文結(jié)合示例代碼給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Spring和Hibernate的整合操作示例

    Spring和Hibernate的整合操作示例

    這篇文章主要介紹了Spring和Hibernate的整合操作,結(jié)合實(shí)例形式詳細(xì)分析了Spring和Hibernate的整合具體步驟、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • 使用AbstractRoutingDataSource實(shí)現(xiàn)數(shù)據(jù)源動(dòng)態(tài)切換的實(shí)例

    使用AbstractRoutingDataSource實(shí)現(xiàn)數(shù)據(jù)源動(dòng)態(tài)切換的實(shí)例

    AbstractRoutingDataSource 是 Spring 框架提供的一個(gè)抽象類,用于實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源路由,這個(gè)類主要用于多數(shù)據(jù)源場景,其中可以根據(jù)不同的條件動(dòng)態(tài)地切換到不同的數(shù)據(jù)源,本文給大家介紹了如何使用AbstractRoutingDataSource實(shí)現(xiàn)數(shù)據(jù)源動(dòng)態(tài)切換,需要的朋友可以參考下
    2024-03-03
  • spring中aop的xml配置方法實(shí)例詳解

    spring中aop的xml配置方法實(shí)例詳解

    AOP的配置方式有2種方式:xml配置和AspectJ注解方式。下面這篇文章主要給大家介紹了關(guān)于spring中aop的xml配置方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07

最新評論

铜山县| 灵武市| 丹巴县| 灵宝市| 栾川县| 阿城市| 来宾市| 松桃| 司法| 台前县| 清徐县| 十堰市| 稷山县| 衡东县| 道孚县| 武鸣县| 三河市| 文化| 竹溪县| 德钦县| 东丰县| 清原| 遵义市| 上犹县| 和平县| 咸丰县| 金坛市| 右玉县| 绿春县| 监利县| 湘西| 江孜县| 资兴市| 东丰县| 攀枝花市| 印江| 洪雅县| 饶阳县| 青州市| 甘泉县| 永定县|