最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用MAT進行JVM內(nèi)存分析實例

 更新時間:2023年04月26日 14:25:12   作者:@Kong  
這篇文章主要介紹了使用MAT進行JVM內(nèi)存分析實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

背景描述

公司小程序商城項目,服務(wù)器為阿里云。

前段時間總是出現(xiàn)服務(wù)器CPU報警現(xiàn)象(設(shè)置的閾值為95%,CPU使用率大于95%會自動報警)。

通過占用命令查看,迅速鎖定當前運行的java進程。

基礎(chǔ)知識

MAT簡介

Eclipse Memory Analyzer是一個快速且功能豐富的Java堆分析器,可幫助您查找內(nèi)存泄漏并減少內(nèi)存消耗。

使用Memory Analyzer分析具有數(shù)億個對象的高效堆轉(zhuǎn)儲,快速計算對象的保留大小,查看誰阻止垃圾收集器收集對象,運行報告以自動提取泄漏嫌疑者。

Heap Dump

首先了解下Heap Dump,它也叫堆轉(zhuǎn)儲文件,是java進程在某個時間內(nèi)的快照。

它在觸發(fā)快照的時候保存了很多信息:java對象和類信息。

通常在寫Heap Dump文件前會觸發(fā)一次Full GC。

獲取Dump

  • 通過OOM獲取,即在OutOfMemoryError后獲取一份HPROF二進制Heap Dump文件,可以在jvm里添加參數(shù):
  • 通過OOM獲取,即在OutOfMemoryError后獲取一份HPROF二進制Heap Dump文件,可以在jvm里添加參數(shù):
  • -XX:+HeapDumpOnOutOfMemoryError
  • 主動獲取,即在虛擬機添加參數(shù)如下,然后在Ctrl+Break組合鍵即可獲取一份Heap Dump
  • -XX:+HeapDumpOnCtrlBreak
  • 使用HPROF agent
  • 使用Agent可以在程序執(zhí)行結(jié)束時或受到SIGOUT信號時生成Dump文件。配置在虛擬機的參數(shù)如下:
  • -agentlib:hprof=heap=dump,format=b
  • jmap 可以在cmd里執(zhí)行,命令如下:
  • jmap -dump:format=b file=<文件名XX.hprof>
  • 使用JConsole

分析實戰(zhàn)

首先獲取dump,jmap -dump:format=b file=<文件名XX.hprof>

使用MAT工具進行日志解析,根據(jù)日志的大小不同,解析時間不同。File>Open Heap Dump。

日志分析。可以看出,存在兩個較大的問題,每個大約占用1G的空間

查看Problem Suspect 1的詳細信息、線程的樹結(jié)構(gòu)以及線程對象匯總,發(fā)現(xiàn)Member對象有近52萬個存活對象

分析線程棧信息,定位問題發(fā)生位置,并進行方法優(yōu)化

總結(jié)

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

相關(guān)文章

  • Java Springboot之Spring家族的技術(shù)體系

    Java Springboot之Spring家族的技術(shù)體系

    今天帶大家來學習Spring家族的技術(shù)體系,文中有非常詳細的圖文介紹及代碼示例,對正在學習java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • SpringBoot3-WebClient配置與使用詳解

    SpringBoot3-WebClient配置與使用詳解

    WebClient是Spring 5引入的響應式Web客戶端,用于執(zhí)行HTTP請求,相比傳統(tǒng)的RestTemplate,WebClient提供了非阻塞、響應式的方式來處理HTTP請求,是Spring推薦的新一代HTTP客戶端工具,本文將詳細介紹如何在SpringBoot 3.x中配置和使用WebClient,一起看看吧
    2024-12-12
  • 輕松掌握Java模板模式

    輕松掌握Java模板模式

    這篇文章主要幫助大家輕松掌握Java模板模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • java實現(xiàn)表格tr拖動的實例(分享)

    java實現(xiàn)表格tr拖動的實例(分享)

    下面小編就為大家分享一篇java實現(xiàn)表格tr拖動的實例。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • springboot整合ehcache和redis實現(xiàn)多級緩存實戰(zhàn)案例

    springboot整合ehcache和redis實現(xiàn)多級緩存實戰(zhàn)案例

    這篇文章主要介紹了springboot整合ehcache和redis實現(xiàn)多級緩存實戰(zhàn)案例,從源碼角度分析下多級緩存實現(xiàn)原理,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Java實現(xiàn)圖像分割功能

    Java實現(xiàn)圖像分割功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)圖像分割功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • mybatis深入講解resultMap的定義及用法

    mybatis深入講解resultMap的定義及用法

    MyBatis的每一個查詢映射的返回類型都是ResultMap,當我們提供返回類型屬性是resultType時,MyBatis會自動給我們把對應值賦給resultType所指定對象的屬性,當我們提供返回類型是resultMap時,將數(shù)據(jù)庫中列數(shù)據(jù)復制到對象的相應屬性上,可以用于復制查詢,兩者不能同時用
    2022-04-04
  • SpringData JPA快速上手之關(guān)聯(lián)查詢及JPQL語句書寫詳解

    SpringData JPA快速上手之關(guān)聯(lián)查詢及JPQL語句書寫詳解

    JPA都有SpringBoot的官方直接提供的starter,而Mybatis沒有,直到SpringBoot 3才開始加入到官方模版中,這篇文章主要介紹了SpringData JPA快速上手,關(guān)聯(lián)查詢,JPQL語句書寫的相關(guān)知識,感興趣的朋友一起看看吧
    2023-09-09
  • SpringBoot異步處理的四種實現(xiàn)方式

    SpringBoot異步處理的四種實現(xiàn)方式

    本篇文章我們以SpringBoot中異步的使用(包括:異步調(diào)用和異步方法兩個維度)來進行講解,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • java重寫(@Override)介紹以及舉例說明

    java重寫(@Override)介紹以及舉例說明

    這篇文章主要給大家介紹了關(guān)于java重寫(@Override)介紹以及舉例說明的相關(guān)資料,在Java中@Override注解用于表示方法重寫(覆蓋)了父類的方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01

最新評論

齐河县| 神农架林区| 防城港市| 旬邑县| 阿瓦提县| 兴业县| 滕州市| 安国市| 新津县| 疏附县| 顺平县| 财经| 栾城县| 班戈县| 定南县| 新闻| 绥德县| 民勤县| 库伦旗| 邢台县| 岑巩县| 海原县| 平凉市| 浮梁县| 扶余县| 潼关县| 双辽市| 宝应县| 曲阳县| 蒙阴县| 神木县| 逊克县| 洛隆县| 彭阳县| 木兰县| 班玛县| 涿州市| 邢台县| 耿马| 江达县| 广元市|