使用jprofiler分析dump檔案一個例項
1.. jstact 命令先分析一下
一次fullgc之後 old 老年代使用比例 只降低2% 應該有什麼大的物件常駐記憶體。
2.可以使用jmap 命令檢視物件大小 (這裡後面使用jprofiler 就沒用這個命令)
jmap -histo:live 72947 | more
3 .dump 線上檔案棧
[[email protected] ~]# jmap -dump:live,format=b,file=heap201712.hropf 72947
Dumping heap to /root/heap201712.hprof ...
Heap dump file created
4
使用jprofiler 載入dump檔案 (jprofiler版本9.1.1)
點選選單biggst object 發現大物件是arrayblockingqueue 佔用400M 點選show in graph 圖形展示物件
發現關聯的可能問題來自 logback
繼續檢視
也是指向logback
檢視logback的配置檔案 info級別
<!-- 非同步輸出,非同步的log片段必須在同步段後面,否則不起作用 --> <appender name="ASYNC_INFO" class="ch.qos.logback.classic.AsyncAppender"> <!-- 不丟失日誌.預設的,如果佇列的80%已滿,則會丟棄TRACT、DEBUG、INFO級別的日誌 , 保持INFO的events,設定該值為0。 --> <discardingThreshold>0</discardingThreshold> <!-- 更改預設的佇列的深度,該值會影響效能.預設值為256 --> <queueSize>100000000</queueSize> <!-- 設定太大 ,系統可能跑步起來 0<queueSize<1個億 --> <!-- 新增附加的appender,最多隻能新增一個 --> <appender-ref ref="INFO" /> </appender>
queuesize 設定的太大了 調小該值即可 是個初始的blockingqueue
相關推薦
使用jprofiler分析dump檔案一個例項
1.. jstact 命令先分析一下 一次fullgc之後 old 老年代使用比例 只降低2% 應該有什麼大的物件常駐記憶體。 2.可以使用jmap 命令檢視物件大小 (這裡後面使用jprofiler 就沒用這個命令) jmap -histo:live 72
使用jprofiler分析dump文件一個實例
log rfi end content 日誌 異步 discard head spa 1.. jstact 命令先分析一下 一次fullgc之後 old 老年代使用比例 只降低2% 應該有什麽大的對象常駐內存。 2.可以使用j
WinDbg分析DUMP檔案
1. 如何生成dump檔案? 原理:通過SetUnhandledExceptionFilter設定捕獲dump的入口,然後通過MiniDumpWriteDump生成dump檔案; 示例: 按 Ctrl+C 複製程式碼 按 Ctrl+C 複製程式碼 2. 如何使用WinDbg
MAT分析dump檔案
hprof-conv android.hprof android.std.hprof select * from instanceof android.app.Activity select *
JProfiler工具開啟dump檔案,分析jar包程式記憶體過大後cpu100%
開發的收集車輛資料程式跑了3-5小時,就會出現如下結果發現程式執行記憶體在這幾個紅點波動,在CPU100%出現一段時間內程式會自動結束。後來利用工具命令分析問題得出是因為記憶體不夠導致一直在GC,因為GC Task Thread佔用CPU比較高。具體步驟如下ps -mp 16
例項講解:使用IBM heapAnalyzer分析heap dump檔案步驟
需求動機:解決 OOM( Object Out of Memory)問題以及系統調優 1.如何產生 java heap dump 當 JVM中物件過多, java堆( java heap)耗盡時,就會產生 java heap dump檔案。另外,可以使用工具或命令
【取證分析】用linux命令xxd來獲取dump檔案資訊獲得flag
題目連結:https://blog.csdn.net/xiangshangbashaonian/article/details/82747394 拿到一道CTF題目 notepad++開啟如下所示 [email protected]:~/Desktop$ fi
使用JProfiler進行記憶體分析-----記憶體洩露,分析記憶體檔案
今天專案組其他同事遇到記憶體洩露的問題。我記得之前在Eclipse中有Eclipse自帶的外掛某某version檢視Dump檔案 現在換成了IDEA工具,同事使用JProfiler檔案進行記憶體分析,記錄一筆 使用JProfiler進行記憶體分析 在最近的工作中,通過JProfiler解
linux core dump 檔案 gdb分析【轉】
core dump又叫核心轉儲, 當程式執行過程中發生異常, 程式異常退出時, 由作業系統把程式當前的記憶體狀況儲存在一個core檔案中, 叫core dump. (linux中如果記憶體越界會收到SIGSEGV訊號,然後就會core dump) 在程式執行的過程中,有
Windows下dump檔案生成與分析
一、 生成Dump檔案方式 1.1工作管理員 在程式崩潰後,先不關閉程式,在工作管理員中找到該程式對應的程序。右鍵—>建立轉儲檔案。 此時會在預設的目錄下創建出一個dump檔案。 可以看出,此種方法只適用於程式崩潰但沒有立即自行退出的情況。
熟悉 CMake(二)—— 以一個例項說明 CMakeLists txt 檔案的編寫
原文請見 cmake使用總結(轉)—工程主目錄CMakeList檔案編寫 在 Linux 下進行開發很多人選擇編寫 makefile 檔案進行專案環境搭建,而makefile 檔案依賴關係複雜,工作量很大。採用自動化的專案構建工具 CMake 可以將程式設計師從複雜的 makefile 檔案中解脫
前端為什麼要使用元件化的思想,通過一個例項來分析
在平時專案中,為什麼我們都會採用元件化的思想去編寫程式碼? 其實的原因很簡單!!! 我們在寫程式碼的時候,寫完以後發現這個程式碼會出現在其他地方,想要複用,或者同事感興趣,想使用這個程式碼。這個時候我們就需要通過元件化來實現程式碼的複用了,否則工作量真
windows 應用程式崩潰時的記憶體轉儲及dump檔案的分析
1、在現場設定程式崩潰時的自動記憶體轉儲,得到dump檔案 在windows 登錄檔如下項: //HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/AeDebug
PDB符號檔案與Windows下利用Windbg 分析dump
PDB簡介 跟蹤提供程式(例如應用程式或驅動程式)的程式資料庫 (PDB) 符號檔案包含用於對跟蹤訊息設定格式的指令,以便可以按照使用者可讀的形式顯示這些訊息。 跟蹤訊息格式設定指令屬於跟蹤提供程式原始碼的一部分。 WPP 前處理器從程式碼中提取這些指令並將其新增
[c++] Windows下dump檔案生成與分析
一、 生成Dump檔案方式 1.1工作管理員 在程式崩潰後,先不關閉程式,在工作管理員中找到該程式對應的程序。右鍵—>建立轉儲檔案。 此時會在預設的目錄下創建出一個dump檔案。 可以
java dump檔案怎麼生成和分析-JMAP用法
jmap是java自帶的工具 1. 檢視整個JVM記憶體狀態 jmap -heap [pid] 2. 檢視JVM堆中物件詳細佔用情況 jmap -histo [pid] 3. 匯出整個JVM 中
[QT]QT教程之例項分析[一]檔案 顏色和字型對話方塊
重點知識已近在程式碼裡註釋... 請仔細看程式碼 本文原創 標頭檔案 standardialog .h #ifndef STANDARDIALOG_H #define STANDARDIALOG_H #include <QObject> #include <
Java Class檔案結構例項分析(下)
發表文章之後,發現很多圖片顯示不了,請閱讀我的公眾號文章,以獲得本文最佳體驗: 本篇我們繼續分析Class檔案結構的方法及屬性部分內容,上節內容回顧請檢視: Class檔案格式資訊 繼續上節例項程式碼 package chapter6; public
分析java dump檔案
注意,請不要被我誤導,我沒有看其他資料,這是我自己分析的,有些可能是不對的 "DestroyJavaVM" prio=6 tid=0x00316800 nid=0x448 waiting on condition [0x00000000 ..0x00a0fd4c]
DUMP檔案分析4:棧溢位
前面說到過,棧溢位型別的異常通過程式設計的方式獲取DUMP可能不成功,因為棧溢位會破壞SEH(結構化異常處理)框架。實際上,通過DUMP檔案來除錯棧溢位同樣是困難的,因為棧溢位本身一般不會造成異常,異常往往發生在棧溢位破壞棧上的資料之後,同時,由於棧溢位破壞了棧上的資料,