記憶體和棧溢位問題定位
記憶體洩露
- 記憶體使用率在90%以上,通過監控工具apm檢視到一臺虛擬機器上應用頻繁在發生了全域性GC(FullGC),導致應用假死,不在接受請求。此時登入虛擬機器
- 記憶體dump
ps -ef | grep appName,獲取程式ID
/usr/local/jdk/bin/jmap -dump:format=b,file=m.hprof pid(程式號) - 使用mat分析dump檔案
參考資料:https://blog.csdn.net/alli0968/article/details/52460008
棧溢位
- 現象:一個後端服務,每天都出現程式死掉。並且部署了該應用的後端服務都發生過程式死掉,通過監控apm發現,每次程式掛掉時間都是凌晨2點。
- 分析:每臺伺服器都發生過,且發生時間都是凌晨2點,說明程式死掉和虛擬機器關係不大,有可能是定時任務。檢視/var/log/message系統日誌,除了看到程式掛掉時間,沒有其他有用日誌。
- 問題定位:ulimit 它是一種簡單並且有效的實現資源限制的方式,修改ulimit值為無限大,用於問題定位。第二天,程式又出現掛掉,檢視/var/log/message系統日誌,看到裡面出現stack over flow即棧溢位,結合發生時間,基本可以確定是定時任務導致。當時定時任務在進行資料歸檔,根據最近幾天歸檔的資料發現都是歸檔完成第42條資料後,程式死掉。應該是第43條資料歸檔出現了問題,模擬現網環境資料,本地執行出現了stack over flow,發現是一個遞迴函式無法退出導致。
相關文章
- Java棧溢位|記憶體洩漏|記憶體溢位Java記憶體溢位
- 記憶體溢位問題記憶體溢位
- 記憶體溢位的問題記憶體溢位
- BufferedImage記憶體洩漏和溢位問題記憶體
- 阿里大佬講解Java記憶體溢位示例(堆溢位、棧溢位)阿里Java記憶體溢位
- tomcat記憶體溢位問題記錄Tomcat記憶體溢位
- 記憶體溢位:native溢位 和 上層溢位記憶體溢位
- 記憶體溢位和記憶體洩露記憶體溢位記憶體洩露
- 記憶體洩漏和記憶體溢位記憶體溢位
- Nuxtjs node memory 記憶體溢位問題UXJS記憶體溢位
- 基礎學習-記憶體溢位問題記憶體溢位
- JVM執行緒和記憶體溢位問題排查思路JVM執行緒記憶體溢位
- 【記憶體洩漏和記憶體溢位】JavaScript之深入淺出理解記憶體洩漏和記憶體溢位記憶體溢位JavaScript
- 記憶體溢位記憶體溢位
- tomcat記憶體溢位問題監控工具Tomcat記憶體溢位
- JavaScript之記憶體溢位和記憶體洩漏JavaScript記憶體溢位
- Java記憶體溢位Java記憶體溢位
- JBOSS記憶體溢位記憶體溢位
- [jenkins]解決jenkins記憶體溢位問題Jenkins記憶體溢位
- 揭露 FileSystem 引起的線上 JVM 記憶體溢位問題JVM記憶體溢位
- [Java基礎]記憶體洩漏和記憶體溢位Java記憶體溢位
- 【轉】java中的記憶體溢位和記憶體洩漏Java記憶體溢位
- java記憶體溢位和記憶體洩漏的區別Java記憶體溢位
- WebLogic: 記憶體溢位Web記憶體溢位
- java 程式記憶體溢位Java記憶體溢位
- 記憶體溢位的分析記憶體溢位
- 尾遞迴 - 杜絕記憶體洩漏溢位爆棧遞迴記憶體
- JVM——記憶體洩漏與記憶體溢位JVM記憶體溢位
- 谷歌安卓5.1.1即將推送:解決記憶體溢位問題谷歌安卓記憶體溢位
- 谷歌安卓5.1.1即將更新 修復記憶體溢位問題谷歌安卓記憶體溢位
- 來了解一下記憶體溢位和記憶體洩漏記憶體溢位
- JVM面試問題系列:深入詳解JVM 記憶體區域及記憶體溢位分析JVM面試記憶體溢位
- 記一次棧溢位異常問題的排查
- 簡單的記憶體“洩露”和“溢位”記憶體
- Android記憶體溢位分析Android記憶體溢位
- Java記憶體溢位情況Java記憶體溢位
- Flume記憶體溢位錯誤記憶體溢位
- JNI練習-記憶體溢位記憶體溢位