java dump文件分析教程 如何用jstat快速監(jiān)控JAVA程序內(nèi)存溢出?
如何用jstat快速監(jiān)控JAVA程序內(nèi)存溢出?Java虛擬機統(tǒng)計監(jiān)控工具jstat(JavaVirtualMachinestatisticsmonitoringtool)。是需要,我們得比較明確幫一下
如何用jstat快速監(jiān)控JAVA程序內(nèi)存溢出?
Java虛擬機統(tǒng)計監(jiān)控工具jstat(JavaVirtualMachinestatisticsmonitoringtool)。
是需要,我們得比較明確幫一下忙jstat的作用:對JVM接受統(tǒng)計監(jiān)控,而且是實時動態(tài)的。這樣監(jiān)控java虛擬機的哪些數(shù)據(jù)呢?
我們先看看jstat是如何修改的,linux下先執(zhí)行:
jstat-help
jstat-ltoptiongt[-t][-hltlinesgt]ltvmidgt[ltintervalgt[ltcountgt]]
再看下有哪些options:
jstat-options
簡述之(其他參數(shù)大家可以不自己換算再練習去看看都輸出來哪些數(shù)據(jù)):
jstat-gc-t-h1027691200010
看這一大堆數(shù)字,煩不厭?惡不想吐?有看下來的心情嗎?通過這些數(shù)據(jù)來急速總結(jié)內(nèi)存泄漏問題能快速過來嗎?
上面是對jstat的一個的基本上能介紹,大家應(yīng)該是是可以看出來,想實際jstat去視頻監(jiān)視內(nèi)存健康狀態(tài)是絕對沒問題的,但是也得明白的了解JVM的相關(guān)知識,要弄清年長代、永久代、YGC、FGC,并根據(jù)這些數(shù)據(jù)來可以確定是否是有內(nèi)存泄漏的問題的或風險。
然而,它的確快,線上出問題了禁不起你這樣折騰起來的,因為這里個人懷疑jstat可以不當成一個監(jiān)控amp預警工具,而不是問題排查工具去不使用。(大家有不同的意見這個可以評論區(qū)交流討論~)
這里,我建議您的方法是:
要是你覺得你的應(yīng)用有內(nèi)存泄漏的問題,那就一定不能別重啟后或者突然停止應(yīng)用,要剩余第一現(xiàn)場(這是目標,準備沒有了就等下一次內(nèi)存泄漏吧~是可以確定通過slb把這臺機器揭掉,盡量避免引響用戶)
用java隨機軟件的工具jmapdump現(xiàn)場文件:jmap-dump:formatb,ltpidgt
用MAT工具總結(jié)heapdump文件,現(xiàn)場文件取得手了,只剩的那是能學會不使用MAT分析文件了,反正也用不著你講,不需要做的事情MAT都幫你做了了,按照MAT即可分析出吃內(nèi)存的對象是什么了,那樣就可以定位到內(nèi)存泄漏的問題了。
以上,是我對java內(nèi)存泄漏問題定位的個人不認識,歡迎大家主動積極討論學,共同成長~
vm虛擬機自動重啟的原因
見意檢查下CPU的散熱器有無直接安裝穩(wěn)定可靠,同樣個人建議完全恢復下cmos設(shè)置,確保全內(nèi)存參數(shù)正確的,可能的話,可以檢測一下內(nèi)存,一般來說物理機不穩(wěn)定點才會再次出現(xiàn)自動重啟的問題。
建議您檢查下CPU的散熱器是否是安裝好穩(wěn)定可靠,而建議您可以恢復下bios設(shè)置,切實保障內(nèi)存參數(shù)對的,可能會的話,先檢測幫一下忙內(nèi)存,一般來說物理機不穩(wěn)定點才會出現(xiàn)自動重啟的問題。