1. 程式人生 > >使用jprofiler分析dump檔案一個例項

使用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檔案來除錯棧溢位同樣是困難的,因為棧溢位本身一般不會造成異常,異常往往發生在棧溢位破壞棧上的資料之後,同時,由於棧溢位破壞了棧上的資料,