欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java內(nèi)存泄漏排查過程及解決

 更新時間:2025年07月23日 14:17:22   作者:抹香鯨之海  
公司某服務(wù)內(nèi)存持續(xù)增長,疑似內(nèi)存泄漏,未觸發(fā)OOM,排查方法包括檢查JVM配置、分析GC執(zhí)行狀態(tài)、導(dǎo)出堆內(nèi)存快照并用IDEA Profiler工具定位大對象及代碼

最近公司生產(chǎn)環(huán)境里面一個服務(wù)的一直在上升,過一段時間就要觸發(fā)報警,重啟也只能暫時緩解,由于還沒有OOM,猜測可能是內(nèi)存泄漏了。

內(nèi)存泄漏

內(nèi)存泄漏是Java應(yīng)用中常見的問題,指對象已經(jīng)不再被使用,但由于被意外引用而無法被垃圾回收器(GC)回收,導(dǎo)致內(nèi)存占用持續(xù)增長,最終可能引發(fā)OOM(OutOfMemoryError)錯誤。

內(nèi)存問題排查

還是采用常規(guī)的辦法,八股文面試必問。

1.查看JVM內(nèi)存配置

查看內(nèi)存中對象的數(shù)量和大小,判斷是否在合理的范圍,如果在合理的范圍內(nèi),增大內(nèi)存配置,調(diào)整內(nèi)存比例就可以了。

查詢一下那個服務(wù)的pid進程號,根據(jù)進程號查詢。

jmap -heap pid

可以看出 老年代的使用率已經(jīng)非常高了。

2.分析gc是否正常執(zhí)行

jstat -gcutil 1000

S0 — Heap上的 Survivor space 0 區(qū)已使用空間的百分比    
S1 — Heap上的 Survivor space 1 區(qū)已使用空間的百分比    
E — Heap上的 Eden space 區(qū)已使用空間的百分比    
O   — Heap上的 Old space 區(qū)已使用空間的百分比    
M   — 元空間 區(qū)已使用空間的百分比
YGC — 從應(yīng)用程序啟動到采樣時發(fā)生 Young GC 的次數(shù)
YGCT– 從應(yīng)用程序啟動到采樣時 Young GC 所用的時間(單位秒)    
FGC — 從應(yīng)用程序啟動到采樣時發(fā)生 Full GC 的次數(shù)
FGCT– 從應(yīng)用程序啟動到采樣時 Full GC 所用的時間(單位秒)    
GCT — 從應(yīng)用程序啟動到采樣時用于垃圾回收的總時間(單位秒)
LGCC - 進行GC的原因(低版本jdk可能沒有這一列)

3.導(dǎo)出 dump 各種工具分析

以文件方式導(dǎo)出 jvm 內(nèi)存使用情況:

jmap -dump:live,format=b,file=xxxx.hprof pid

4.工具分析dump

jvm 分析工具有很多,我這里使用idea自帶的小儀表盤,無需單獨下載,可以直接使用,小儀表盤的名字叫Profiler,功能比較強大,最好使用idea2023以后的版本。

打開dump 文件:

打開后頁面如下:

查找一下大對象:

快速找出耗內(nèi)存大對象:

根據(jù)大對象直接定位到具體的代碼:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaWeb實現(xiàn)郵件發(fā)送接收功能

    JavaWeb實現(xiàn)郵件發(fā)送接收功能

    這篇文章主要為大家詳細介紹了JavaWeb郵件發(fā)送接收功能的實現(xiàn),郵件發(fā)送和接收功能是非常常用的功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 在SpringBoot項目中利用maven的generate插件

    在SpringBoot項目中利用maven的generate插件

    今天小編就為大家分享一篇關(guān)于在SpringBoot項目中利用maven的generate插件,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • java == 引發(fā)的線上異常詳解

    java == 引發(fā)的線上異常詳解

    這篇文章主要介紹了java == 引發(fā)的線上異常,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2021-09-09
  • Spring中bean對象的裝配方式、作用域及生命周期詳解

    Spring中bean對象的裝配方式、作用域及生命周期詳解

    這篇文章主要介紹了Spring中bean對象的裝配方式、作用域及生命周期詳解,SprignBoot中?@Bean?完美的替換了了上面的這種在xml中配置的方法,使用以下方法就能讓spring在需要自動創(chuàng)建Info對象時,自動調(diào)用這個方法,需要的朋友可以參考下
    2023-11-11
  • SpringCloud Feign 服務(wù)調(diào)用的實現(xiàn)

    SpringCloud Feign 服務(wù)調(diào)用的實現(xiàn)

    Feign是一個聲明性web服務(wù)客戶端。本文記錄多個服務(wù)之間使用Feign調(diào)用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Java微信二次開發(fā)(三) Java微信各類型消息封裝

    Java微信二次開發(fā)(三) Java微信各類型消息封裝

    這篇文章主要為大家詳細介紹了Java微信二次開發(fā)第三篇,Java微信各類型消息封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 實例講解MyBatis如何防止SQL注入

    實例講解MyBatis如何防止SQL注入

    這篇文章通過實例代碼介紹MyBatis如何防止SQL注入,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2021-12-12
  • java實現(xiàn)小型局域網(wǎng)群聊功能(C/S模式)

    java實現(xiàn)小型局域網(wǎng)群聊功能(C/S模式)

    這篇文章主要介紹了java利用TCP協(xié)議實現(xiàn)小型局域網(wǎng)群聊功能(C/S模式) ,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 基于Mybatis plus 自動代碼生成器的實現(xiàn)代碼

    基于Mybatis plus 自動代碼生成器的實現(xiàn)代碼

    本文通過實例代碼給大家介紹了基于Mybatis-plus 自動代碼生成器的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • Java后端長時間無操作自動退出的實現(xiàn)方式

    Java后端長時間無操作自動退出的實現(xiàn)方式

    這篇文章主要介紹了Java后端長時間無操作自動退出的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論