OutOfMemory排查

Java程序在運行的時候,因爲一些代碼問題,可能會出現OOM錯誤,那此時如何排查呢?可以分爲幾步

第一步,就是找到Tomcat對應的一個進程號,可以使用ps-ef來找到對應的PID

第二步,就是可以使用jmap-heap指令,跟上剛纔查到的PID,來查看JVM堆內存的使用情況,主要是看survivor區和老年代的空間,如果survivor區和老年代一直是比較滿的狀態,可能就會有問題

第三步,使用jmap指令,可以直接在控制檯生成java對象的情況,包括像對象個數,佔用內存大小都可以看到,或者加上dump參數,直接生成dump文件,然後放到jprofiler中就可以很直觀地看到對象的內存佔用情況,可以分析出哪個對象是可能存在內存泄漏問題,然後直接去代碼中優化了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章