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

Java應用/JVM宕機排查步驟操作

 更新時間:2020年09月17日 08:57:57   作者:Mistra丶  
這篇文章主要介紹了Java應用/JVM宕機排查步驟操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

相信大家都遇到過,自己的Java應用運行一段時間就宕機了或者響應請求特別慢。這時候就需要我們了來找出問題所在了。絕大部分都是代碼問題導致的。

一、服務宕機

如果是服務宕機,發(fā)生致命問題導致進程已經(jīng)死掉了,那么已經(jīng)訪問不了了,通常都是CPU問題引起的,程序一般會自己生成javacore文件,一般生成位置在/root目錄或jar包同目錄下。JavaCore文件主要保存的是Java應用各線程在某一時刻的運行的位置,即JVM執(zhí)行到哪一個類、哪一個方法、哪一個行上。

找到這個文件,執(zhí)行命令

gdb java <文件>

bt

如果文件沒有損壞的話可以看到完整的棧調用信息。就可以定位到問題代碼所在。

我曾經(jīng)就因為底層調用的一個geo庫出問題,導致程序直接掛掉,分析core文件可以清晰的看到native方法的調用。

二、服務響應請求慢

出現(xiàn)這個問題一般都是內存溢出,GC線程一直在重復GC,沒有線程來處理用戶請求,或者問題代碼導致CPU占用過高。

程序崩潰前會生成HeapDump文件,也可以手動生成,HeapDump是一個二進制文件,它保存了某一時刻JVM堆中對象使用情況。

在JVM啟動參數(shù)要配置好HeapDump的生成位置和配置打印gc日志。這樣才能排查問題。

先分析GC日志

在線分析工具地址:https://gceasy.io/

把gc文件上傳就好了,就可以看到分析結果。重點關注什么區(qū)域的GC占用最多時間。

離線分析工具:GCViewer 是一款開源的GC日志分析工具。

如果程序內存溢出,通過分析gc文件可以發(fā)現(xiàn)程序內存占用機會100%而且一直重復GC。

分析HeapDump文件

1、先找到Java應用的pid

ps -ef | grep java 或者 jps -l 查看

2、查看堆內存使用量

jmap -heap <pid>

3、查看Java進程中的每一個線程的情況(linux),可以清晰的看到每一個線程的cpu及內存使用情況

top -Hp <pid>

window下可以借助工具 Process Explorer,

4、打印線程快照信息,保存到文件xxx.txt中方便查看

jstack <pid> > xxx.txt

參考這一篇文章: http://www.fzitv.net/article/195797.htm

5、通過top -Hp <pid>看到的線程id是10進制的,我們輸出到xxx.txt中的是16進制,所以需要轉一下,找一個異常線程tid

printf "%x" <tid> 假如輸出為 1111

6、在xxx.txt文件中查找tid為1111的棧信息,可以看到這個線程在干什么,定位到問題代碼。

7、程序宕機會自動產生dump文件,若沒有宕機就手動導出dump文件

jmap -dump:format=b,file=文件名 <pid>

桌面分析工具:Eclipse Memory Analyzer,它有windows版的和Linux版的

windows下:把HeapDump文件放進去就可以了,分析完后,很直觀的看到當前內存占用量最高的是某個類的某個參數(shù)。持有了多少個對象,這些對象占用了多少內存,從而定位到問題代碼。

Linux下:先把Eclipse Memory Analyzer版上傳到服務器,解壓,假如/home/mat為解壓后路徑,執(zhí)行命令

/home/mat/ParseHeapDump.sh <文件名> org.eclipse.mat.api:suspects prg.eclipse.mat.api:overview

org.eclipse.mat.api:top_components

分析完之后會在當前文件生成結果文件。下載到本地查看即可。

以上這篇Java應用/JVM宕機排查步驟操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 聊聊Object類中的wait()和notify()方法

    聊聊Object類中的wait()和notify()方法

    這篇文章主要介紹了Object類中的wait()和notify()方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java編程之單元測試(Junit)實例分析(附實例源碼)

    java編程之單元測試(Junit)實例分析(附實例源碼)

    這篇文章主要介紹了java編程之單元測試(Junit),結合實例形式較為詳細的分析總結了Java單元測試的原理、步驟及相關注意事項,并附帶了完整代碼供讀者下載參考,需要的朋友可以參考下
    2015-11-11
  • Springboot集成spring data elasticsearch過程詳解

    Springboot集成spring data elasticsearch過程詳解

    這篇文章主要介紹了springboot集成spring data elasticsearch過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 詳解RestTemplate的三種使用方式

    詳解RestTemplate的三種使用方式

    這篇文章主要介紹了詳解RestTemplate的三種使用方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • Spring源碼解析 Bean的實例化

    Spring源碼解析 Bean的實例化

    這篇文章主要介紹了Spring源碼解析 Bean的實例化,文章圍繞主題展開詳細的內容介紹沒具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Java 集合系列(二)ArrayList詳解

    Java 集合系列(二)ArrayList詳解

    這篇文章主要介紹了Java集合系列ArrayList,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Java并發(fā)編程中的synchronized關鍵字詳細解讀

    Java并發(fā)編程中的synchronized關鍵字詳細解讀

    這篇文章主要介紹了Java并發(fā)編程中的synchronized關鍵字詳細解讀,在Java早期版本中,synchronized 屬于 重量級鎖,效率低下,這是因為監(jiān)視器鎖(monitor)是依賴于底層的操作系統(tǒng)的Mutex Lock來實現(xiàn)的,Java 的線程是映射到操作系統(tǒng)的原生線程之上的,需要的朋友可以參考下
    2023-12-12
  • 基于SSM框架+Javamail發(fā)送郵件的代碼實例

    基于SSM框架+Javamail發(fā)送郵件的代碼實例

    本篇文章主要介紹了基于SSM框架+Javamail發(fā)送郵件的代碼實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • SpringMvc3+extjs4實現(xiàn)上傳與下載功能

    SpringMvc3+extjs4實現(xiàn)上傳與下載功能

    這篇文章主要為大家詳細介紹了SpringMvc3+extjs4實現(xiàn)上傳與下載功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Java實現(xiàn)將byte[]轉換為File對象

    Java實現(xiàn)將byte[]轉換為File對象

    這篇文章將通過一個簡單的例子為大家演示Java如何實現(xiàn) byte[] 轉換為 File 對象,并將其上傳到外部服務器,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-03-03

最新評論

延寿县| 金湖县| 泊头市| 桐梓县| 元谋县| 论坛| 赫章县| 晋江市| 安阳县| 图们市| 镇巴县| 海丰县| 哈密市| 桦甸市| 马公市| 时尚| 南部县| 文成县| 阿合奇县| 宜丰县| 简阳市| 安阳县| 交城县| 南澳县| 肇州县| 柳河县| 青阳县| 东莞市| 阿拉善右旗| 吉安市| 思南县| 淳化县| 开封县| 吉木萨尔县| 筠连县| 黄平县| 陵水| 南平市| 桐柏县| 徐闻县| 综艺|