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 耗时告警
本文来自博客园,作者:mushishi,转载请注明原文链接:https://www.cnblogs.com/mushishi/p/14553125.html