檔案儲存服務fullgc排查

2021-08-06 06:51:52 字數 774 閱讀 6877

1.問題

線上服務執行一段時間及時間,監控出現報警,近期出現固定時間段fullgc過多。

2.檢視虛擬機器狀態

jstat -gcutils ***xx 1000

命令檢視jvm狀態

檢視虛擬機器狀態發現fullgc次數多,但不是特別頻繁而且規律也不一致

檢視虛擬機器各個模組大小,發現存在記憶體無法釋放

3.jmap命令抓取dump

分析發現byte占用記憶體較多

雙擊檢視詳細占用發現為

this -

value: byte #5090

pool- class:org.glassfish.grizzly.memory.heapmemorymanager

heapbufferthreadlocalpool,  

value: byte #5090  

memorypool (thread object)     - class: org.glassfish.grizzly.threadpool.defaultworkerthread, value: org.glassfish.grizzly.memory.heapmemorymanager

heapbufferthreadlocalpool #41

該記憶體區域為處理為處理request和reponse的記憶體區域

極少數的物件占用了絕大多數的記憶體空間,即存在大物件占用了大部分的記憶體空間,由於大物件直接進入老年代,造成ygc時無法**,只能通過fullgc的方式收回

專案full gc 排查

物件直接放入老年代條件 一般情況是四種,但是尤其以第一種 最多 1.新生代物件每經歷依次minor gc,年齡會加一,當達到年齡閥值會直接進入老年代。閥值大小一般為15 2.survivor空間中年齡所有物件大小的總和大於survivor空間的一半,年齡大於或等於該年齡的物件就可以直接進入老年代,而...

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

如題,機器發生頻繁fullgc報警,如何定位原因?一般現象為cpu飆高,rt增加,另外很可能出現oom。當碰到這種現象時,如何定位 列印heap的概要資訊,gc使用的演算法,heap 堆 的配置及jvm堆記憶體的使用情況.jmap heap pid列印每個class的例項數目,記憶體占用,類全名資訊...

Linux 服務排查

root使用者下,操作以下5步 1 查網路,保證本機與對方互相通訊 ifconfig ipconfig ping 2 查linux的對應服務是否啟動,使服務的status保持running狀態 比如ssh etc init.d sshd status etc init.d sshd restart ...