av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Java應(yīng)用/JVM宕機(jī)排查步驟操作

瀏覽:7日期:2022-08-24 14:24:49

相信大家都遇到過,自己的Java應(yīng)用運(yùn)行一段時(shí)間就宕機(jī)了或者響應(yīng)請(qǐng)求特別慢。這時(shí)候就需要我們了來找出問題所在了。絕大部分都是代碼問題導(dǎo)致的。

一、服務(wù)宕機(jī)

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

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

gdb java <文件>

bt

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

我曾經(jīng)就因?yàn)榈讓诱{(diào)用的一個(gè)geo庫出問題,導(dǎo)致程序直接掛掉,分析core文件可以清晰的看到native方法的調(diào)用。

二、服務(wù)響應(yīng)請(qǐng)求慢

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

程序崩潰前會(huì)生成HeapDump文件,也可以手動(dòng)生成,HeapDump是一個(gè)二進(jìn)制文件,它保存了某一時(shí)刻JVM堆中對(duì)象使用情況。

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

先分析GC日志

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

Java應(yīng)用/JVM宕機(jī)排查步驟操作

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

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

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

分析HeapDump文件

1、先找到Java應(yīng)用的pid

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

2、查看堆內(nèi)存使用量

jmap -heap <pid>

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

top -Hp <pid>

window下可以借助工具 Process Explorer,

Java應(yīng)用/JVM宕機(jī)排查步驟操作

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

jstack <pid> > xxx.txt

參考這一篇文章: https://www.jb51.net/article/195797.htm

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

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

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

7、程序宕機(jī)會(huì)自動(dòng)產(chǎn)生dump文件,若沒有宕機(jī)就手動(dòng)導(dǎo)出dump文件

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

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

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

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

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

org.eclipse.mat.api:top_components

分析完之后會(huì)在當(dāng)前文件生成結(jié)果文件。下載到本地查看即可。

以上這篇Java應(yīng)用/JVM宕機(jī)排查步驟操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 又色又爽又黄gif动态图 | 黑人一级黄色片 | 青青青国产| 亚洲欧美日韩综合 | 国产日韩欧美一区二区 | 久久久久久久九九九九 | 免费黄色小视频 | 色视频www在线播放国产人成 | 亚洲精品在线免费 | 好吊妞这里只有精品 | 久热久| 日韩特级毛片 | 中文字幕少妇 | 久久黄色录像 | av一区二区三区在线观看 | 欧美一级片在线观看 | 精品一区二区三 | 国产精品美女在线 | 黄色小视频免费 | 91精品国产麻豆国产自产在线 | 国产又粗又猛又黄又爽无遮挡 | 玖玖视频在线 | 国语对白做受欧美 | 国产香蕉av | 欧美视频在线一区 | 日本不卡在线播放 | 国产主播99 | 欧美日韩一区二区在线观看 | 精品久久一区二区 | av资源在线| 黄视频免费在线观看 | 欧美不卡一区二区三区 | av在线播放免费 | 精品亚洲一区二区三区四区五区 | 日韩在线欧美 | 亚洲人天堂 | 亚洲一区二区在线播放 | 成人夜色| 中文字幕手机在线观看 | 日本欧美亚洲 | 18国产免费视频动漫 |