jvm优化规范

一、上线前预估

  • 预估日活用户数量
  • 高峰时段、时长
  • 用户一次行为涉及到的接口,预估接口请求次数
    根据上面3个指标 算出接口预计的 qps, 适当扩大 10 ~ 20倍
  • 接口耗时
  • 接口执行过程中创建的对象总大小, 适当扩大 10~20倍
    前面算出的 qps * 创建对象总大小 => 每秒内存占用
    再根据接口耗时 * qps * 创建对象总大小 => 算出 发生gc时候 存活对象有多少

现在,就能知道 大概多久会塞满 eden区,发生一次 minor gc ,而后存活对象有多少
合理设置下 jvm堆的比例

二、压测

实际模拟用户行为进行压测,对前面设置的 jvm 做检验
根据压测情况,判断之前的预估是否准确
分析 gc 日志 :看minor gc多久发生一次 耗时是多少, 每次 minor gc后有多少对象晋升到老年代 ,full gc多久发生一次 耗时多久,是否太频繁

三、线上监控

  • jvm堆各区域的水位情况
  • gc监控

四、告警配置

人不可能一直盯着大盘看,配置告警策略,当有异常的时候自动即时告警

重点关注

  • minor gc 耗时告警
  • full gc 频率告警
  • full gc 耗时告警
posted @ 2021-03-18 01:32  mushishi  阅读(86)  评论(0编辑  收藏  举报