記一次load飆升,頻繁FullGC問題解決過程

1.現象

  • load飆升到30+
  • 線上sql連接異常
  • tps正常
  • sql查詢時間劇增

在這裏插入圖片描述

2.解決過程

  1. sql連接池不夠了,肯定是慢sql導致
  2. 頻繁GC,一般內存使用過多
  3. 結合堆棧信息,某個對象內存佔用特別多
  4. 某個sql查詢數量大,調用量多,全表掃描。

3.GC查看

top 命令查看資源情況,找到使用率最高的線程
在這裏插入圖片描述
sudo -u spring-boot jstat -gcutil 384 200 50 命令查看內存使用,GC回收情況
在這裏插入圖片描述

4.dump堆棧信息

sudo -u spring-boot jmap -dump:format=b,file=heap.hprof 1375
在這裏插入圖片描述

5.下載文件

scp -r [email protected]:/tmp/hsperfdata_spring-boot/heap.hprof /Users/download
解釋:root@ip:/目標文件地址 下載到那個文件地址

6.用JProfiler分析

注:圖不是一次解決問題過程中截的,所以PID都不同

再一次生產 CPU 高負載排查實踐

jstat命令查看jvm的GC情況

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章