分析系统gc是否健康的大概思路

  1. 机器的配置,内存多少G
  2. jvm 参数设置: 堆大小,年轻代、老年代比例 等 收集器用的是什么 => 知道什么内存水位和时机会发生 minor gc 和 full gc
  3. 观察 gc 概况: minor gc 的频率和耗时, full gc的频率和耗时 重点关注 stw 和 fullgc
  4. 再细看 gc 情况
    a. 每次minor gc发生前后年轻代内存的变化,survivor区存活对象有多少
    b. 有没有对象晋升到老年代, 有的话 晋升的原因是什么? 满16周岁了? 动态年龄判断 超过survivor 50%了? 还是存活对象太多导致 survivor 直接放不下了?
    c. 是否有大对象 直接进入老年代
    minor gc 前,老年代空闲空间是否足够?会不会因为 分配担保 导致提前 full gc

本文来自博客园,作者:mushishi,转载请注明原文链接:https://www.cnblogs.com/mushishi/p/14553128.html

原文地址:https://www.cnblogs.com/mushishi/p/14553128.html