日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gc就是fullgc吗 major_线上出现fullgc问题如何排查?

發布時間:2023/12/10 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gc就是fullgc吗 major_线上出现fullgc问题如何排查? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.問題描述

線上出現fullgc報警,每5分鐘一次

2.背景知識

1. 程序執行了System.gc()

  • 執行了jmap -histo:live pid命令
  • 在執行minor gc的時候進行的一系列檢查
    執行Minor GC的時候,JVM會檢查老年代中最大連續可用空間是否大于了當前新生代所有對象的總大小。 如果大于,則直接執行Minor GC(這個時候執行是沒有風險的)。 如果小于了,JVM會檢查是否開啟了空間分配擔保機制,如果沒有開啟則直接改為執行Full GC。 如果開啟了,則JVM會檢查老年代中最大連續可用空間是否大于了歷次晉升到老年代中的平均大小,如果小于則執行改為執行Full GC。 如果大于則會執行Minor GC,如果Minor GC執行失敗則會執行Full GC
  • 使用了大對象
  • 在程序中長期持有了對象的引用
  • 3.排查步驟

    注意: JVM在執行dump操作的時候是會發生stop the word事件的,也就是說此時所有的用戶線程都會暫停運行。

    3.1通過JVM參數獲取dump文件

    # 1.線上環境如果有流量需要在啟動服務腳本中加入如下JVM參數,表示在發生fullgc的時候自動dump -XX:HeapDumpBeforeFullGC # 2.與第一個JVM參數配套使用,指定dump文件的保存路徑,便于排查問題,路徑也可以是相對路徑 -XX:HeapDumpPath=保存dump文件的文件絕對路徑# 說明:如果加入這兩個jvm參數還是沒有dump下來文件,可能是你的jvm的參數中有其他的參數導致dump失敗,排查看是否有如下參數,如果有去掉即可 -XX:+DisableExplicitGC

    3.2通過JDK自帶的工具jmap獲取dump文件

    # 導出內存dump文件 jmap -F -dump:live,file=jmap.hprof [PID] ##### 3.3把dump文件從線上主機下載到本地 命令格式: scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file 或者 scp local_file remote_ip:remote_folder 或者 scp local_file remote_ip:remote_file##### 3.4通過JDK自帶的jvisualvm工具分析或者下載三方軟件jprofiler來分析dump文件即可##### 3.5最重要的一點,要把fullgc發生時刻的dump文件和正常沒有發生fullgc時間的dump文件都下載到本地,然后對比觀察分析方便找到問題的原因

    總結

    以上是生活随笔為你收集整理的gc就是fullgc吗 major_线上出现fullgc问题如何排查?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。