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

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

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

背景描述

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

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

通過(guò)占用命令查看,迅速鎖定當(dāng)前運(yùn)行的java進(jìn)程。

基礎(chǔ)知識(shí)

MAT簡(jiǎn)介

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

使用Memory Analyzer分析具有數(shù)億個(gè)對(duì)象的高效堆轉(zhuǎn)儲(chǔ),快速計(jì)算對(duì)象的保留大小,查看誰(shuí)阻止垃圾收集器收集對(duì)象,運(yùn)行報(bào)告以自動(dòng)提取泄漏嫌疑者。

Heap Dump

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

它在觸發(fā)快照的時(shí)候保存了很多信息:java對(duì)象和類(lèi)信息。

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

獲取Dump

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

分析實(shí)戰(zhàn)

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

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

日志分析??梢钥闯觯嬖趦蓚€(gè)較大的問(wèn)題,每個(gè)大約占用1G的空間

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

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

總結(jié)

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

相關(guān)文章

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

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

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

    SpringBoot3-WebClient配置與使用詳解

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

    輕松掌握J(rèn)ava模板模式

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

    java實(shí)現(xiàn)表格tr拖動(dòng)的實(shí)例(分享)

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

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

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

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

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

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

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

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

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

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

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

    java重寫(xiě)(@Override)介紹以及舉例說(shuō)明

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

最新評(píng)論

紫金县| 无为县| 资中县| 理塘县| 福建省| 东兰县| 岳阳市| 绥棱县| 昌都县| 济源市| 河北省| 罗源县| 肇东市| 湖南省| 胶南市| 苗栗市| 上杭县| 武宣县| 大悟县| 长宁区| 鸡东县| 高雄县| 宜州市| 苍山县| 新丰县| 舞钢市| 玉田县| 延津县| 清水河县| 平乐县| 丰顺县| 慈利县| 临泽县| 雷山县| 尉氏县| 甘孜| 永清县| 拜城县| 甘孜县| 芒康县| 化隆|