自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OOM內(nèi)存泄露速查備忘錄

開發(fā)
本文整理了一份OOM內(nèi)存泄露問題速查備忘錄,一起來了解一下。

本文整理了一份OOM內(nèi)存泄露問題速查備忘錄,詳細見下文。

1、核心步驟

  1. top、free、df三連,查看CPU、內(nèi)存、磁盤的大致情況。
  2. netstat -lp 查看端口占用情況。
  3. 導出內(nèi)存dump文件:
# 保存了堆內(nèi)存現(xiàn)場 
jmap -dump:format=b,file=heap.dump pid
# 強制保存了堆內(nèi)存現(xiàn)場
jmap -F -dump:format=b,file=heap.dump pid
  1. 保存線程棧:
# 保存了線程棧的現(xiàn)場
jstack pid > jstack.log

2、輔助工具

  • jstat -gc[gcutil] pid [interval]查看JVM垃圾回收情況。通過 jstat 查看 GC 信息,首先就是判斷 GC 時間是否較長,GC 發(fā)生是否頻繁,然后看是否經(jīng)常性進行 FullGC。
# 如:jstat -gc pid 1000,持續(xù)跟蹤如1S一次。查看java堆的狀況,顯示具體數(shù)值。
jstat -gc pid 1000
# 通過 jstat -gcutil 5 1000命令查看GC信息,其中5代表進程號,1000代表顯示時間。查看堆中各個區(qū)域已使用空間占其總空間的百分比。
jstat -gcutil pid 1000

  • 借助MAT(Eclipse Memory Analyzer)工具分析dump文件,分析內(nèi)存情況。
  • 直接用文本工具打開jstack文件,分析線程占用情況。
  • 借助VisualVM更直觀:

3、分析過程

3.1、分析線程棧

直接通過文本工具打開jstack.log,搜索業(yè)務相關(guān)包名,應該大致能定位出問題:

3.2、分析內(nèi)存

 1. 用MAT工具打開dump文件

2. 一般打開Histogram視圖,這樣能快速地發(fā)現(xiàn)問題,也可以打開Leak Suspects(泄露嫌疑),如下圖:

尋找這個對象被哪些地方引用了,如下圖:

查看大對象,找出自己業(yè)務相關(guān)的關(guān)鍵引用:

根據(jù)上面GC Roots的結(jié)果,在結(jié)合自身的業(yè)務代碼排查下,一般都會找到線索,比如:

  • 某個線程遠程調(diào)用了接口返回的對象,一直被使用未能釋放
  • 每次執(zhí)行的數(shù)據(jù)量過大
  • 流沒有關(guān)閉
  • 死循環(huán) 或者 遞歸次數(shù)太多
  • 定時任務執(zhí)行頻率過高,在任務沒執(zhí)行完畢時又在持續(xù)執(zhí)行,導致積壓了大量對象
  • ......

4、總結(jié)

本文整理了一份OOM內(nèi)存泄露問題速查備忘錄。核心內(nèi)容是:

  • top、free、df三連,然后netstat、jstat工具跟上。
  • 緊接著趕緊jmap、jstack保存現(xiàn)場,然后重啟應用。
  • MAT分析問題,修改問題,重新發(fā)布。
責任編輯:趙毅 來源: 不焦躁的程序員
相關(guān)推薦

2025-02-17 14:48:14

2018-12-24 21:40:12

2020-11-02 10:41:33

備忘錄模式

2011-04-11 10:03:32

錢伯斯思科

2011-08-16 18:38:23

Core Animat動畫

2017-03-21 11:02:59

基礎(chǔ)深度學習備忘錄

2014-04-17 10:30:41

Linux 命令黑白備忘錄

2016-03-03 10:09:26

2013-08-29 10:50:48

移動網(wǎng)站性能優(yōu)化移動web

2018-06-20 13:14:16

MySQL數(shù)據(jù)優(yōu)化查詢備忘錄

2011-12-07 09:19:49

JavaJ2MEBicaVM

2021-03-08 00:12:44

Grid 備忘錄 函數(shù)

2011-05-20 09:12:48

AMD北京云基地云計算

2019-04-30 11:15:51

正則表達式JS前端

2024-05-15 17:41:37

備忘錄模式多線程

2009-08-14 15:50:45

C#正則表達式

2022-04-07 08:00:00

Javascript開發(fā)

2023-10-07 00:14:53

2009-06-17 16:54:27

MySpace備忘錄裁員

2011-08-31 10:34:47

JavaJava備忘錄
點贊
收藏

51CTO技術(shù)棧公眾號