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