日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

videocapture.read()解决内存泄露_只需4个步骤,分析解决在生产环境下JVM内存泄露问题...

發布時間:2023/12/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 videocapture.read()解决内存泄露_只需4个步骤,分析解决在生产环境下JVM内存泄露问题... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:未完成交響曲

發現異常

首先通過我們內部搭建的日志平臺發現我們線上環境一個java應用有大量的http接口請求超時,登錄linux服務器查看網絡環境沒有問題,判斷是應用自身運行異常,重啟應用后發現異常還在,開始查找問題。

初步查找問題

通過指令:jstat -gcutil 查看jvm內存占用和gc情況:

發現老年代內存占用比例過高,并且每次fullGC后并沒有有效回收。老年代內存占用百分比變化趨勢大致如下:

初步判斷大量請求超時和服務癱瘓的直接原因:

每次fullGC后的內存占用越來越高

內存占用增長速度越來越快

fullGC的頻率越來越高

最終占用達到100%,服務完全癱瘓

分析處理

使用指令:jmap -histo:live *** | more 查看堆內存中的對象數量和大小

發現Log4jLogEvent這個對象實例很多,占用內存也異常的大,初步分析是異步日志傳輸速度跟不上,導致日志對象堆積在內存中。

嘗試使用調整Flume傳輸日志參數:提高flume單次傳輸量,減少最大延遲時間

重啟應用并監控接口調用情況發現應用暫時恢復正常了。

后續分析

在前一步分析內存的同時,使用指令:jmap -dump:format=b,file=heapDump.hprof將實時內存信息導出(dump過程比較慢,所以在問題暫時處理完后進行后續分析),使用mat分析內存結構:

可以看到主要占據堆內存的對象信息,果然是Flume異步傳輸日志堵塞的問題。

總結

對jvm內存泄露這類問題的解決,主要是要善于利用jvm提供的類似jstat、jmap等工具來分析查找問題。這次問題雖然解決,但是后續還是存在出現此類問題的風險。所以除了加強jvm問題排查能力的同時,我們也將建立應用監控平臺的計劃提上日程,希望能對jvm內存、線程等應用實時運行指標進行監控,便于盡早發現問題。

歡迎大家一起交流,喜歡文章記得關注我點贊轉發喲,感謝支持!

總結

以上是生活随笔為你收集整理的videocapture.read()解决内存泄露_只需4个步骤,分析解决在生产环境下JVM内存泄露问题...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。