學習了!頻繁發生FullGC問題排查手段

2021-10-10 05:55:00 字數 920 閱讀 2425

如題,機器發生頻繁fullgc報警,如何定位原因?

一般現象為cpu飆高,rt增加,另外很可能出現oom。當碰到這種現象時,如何定位:

列印heap的概要資訊,gc使用的演算法,heap(堆)的配置及jvm堆記憶體的使用情況.

jmap -heap pid
列印每個class的例項數目,記憶體占用,類全名資訊,vm的內部類名字開頭會加上字首」*」. 如果live子引數加上後,只統計活的物件數量.

jmap -histo:live pid
輸出jvm的heap內容到檔案,live子選項是可選的,假如指定live選項,那麼只輸出活的物件到檔案.

jmap -dump:live,format=b,file=myjmapfile.txt pid
finalizerinfo 列印正等候**的物件的資訊

jmap -finalizerinfo pid
檢視當前的jvm程序堆記憶體狀態

dashboard
watch系統中某個方法,某個屬性的值,嚴重物件當前狀態。

# watch 類全路徑  方法名   '屬性或者方法的全路徑引用'

watch demo.mathgame primefactors 'target.illegalargumentcount'

# 觀察方法的第乙個引數值

watch demo.mathgame primefactors params[0]

自帶的命令分析

頻繁發生fullgc的原因和定位思路

1.機器 cpu 負載過高 2.頻繁 full gc 告警 3.系統無法請求處理或者過慢,介面無關 全面性的出現以上異常的時候,要第一時間反應過來可能是 full gc的問題 full gc 觸發條件是 老年代空間不足,所以追因的方向就是導致 老年代空間不足的原因 大量物件頻繁進入老年代 老年代空間...

Flutter學習前筆記 配置發生的問題

刪除所有原始生成檔案 memory 剪貼簿 network 開發工作中最常用 網際網路上的 列表可以加直接使用leading new icon icons.access alarm outlined import package flutter material.dart void main ove...

關於學習了《構建之法》的若干存在疑惑的問題

第二,在開發的過程中,如何協調高效解決我們的遇到問題,團隊每個人的知識技能水平不一樣,如何協調發揮各自的才能,使人盡其力,物為我們所用,有效提高整個團隊的效率是我們要認真 的問題,也是乙個成功團隊需要解決的問題。第五,就是在軟體測試階段,這個階段我們可能遇到的問題可能比開發過程中遇到的問題還要多,怎...