JVM调优

1, 频繁Minor GC

-Xmn 新生代大小 增大

-XX:NewRatio 老年代和新生代的比例 降低

目标:增大新生代,减少minor gc的频率

2,Minor GC后,大量对象存活进入老年代

-XX:SurvivorRatio s区经常满的情况下,适当减少该比例值,增大s区,减慢对象进入老年代

-XX:MaxTenuringThreshold 适当延长对象在s区的时间,比如提升到20次Minor gc后再进入老年代

3,老年代经常满,导致频繁full gc

优化新生代大小:增大新生代大小,避免因为s区装不下导致的对象提前晋升进入老年代

优化晋升策略:-XX:MaxTenuringThreshold 比如扩大晋升到老年代需要的Minor GC的次数

优化方式和前面两个差不多

4,老年代内存还很多,但是频繁的full gc

-XX:MetaspaceSize

-XX:MaxMetaspaceSize

检查元空间大小,可能是元空间过小导致的频繁 full gc

检查下代码是否有显式的调用系统GC

5,GC停顿时间过长

使用低延迟的收集器 G1

减小新生代,加快单次的GC时间,但是会导致GC频率上升

6,调优步骤

开启gc日志 :-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Xloggc:/path/to/gc.log

可视化分析:

jstat -gc <pid> 查看各区域的使用情况和gc次数、时间

S0 S1 E O 内存使用率

YGC FGC young和full的gc次数

YGCT FGCT young和full的gc耗时,单位s

图中出现过E区满的情况下导致的Minor GC

GCViewer查看gc日志,查看gc时间、频率、内存区域变化趋势、吞吐量(程序运行时间/总时间)

分析结果处于上面哪种场景,调整参数,在压力测试下观察效果

  • “笨”的收集器(Serial, Parallel) 直接触发 Full GC。
  • “聪明”的收集器(CMS, G1) 会先尝试用 Major GC / Mixed GC 来解决问题,但如果它们失败了,最终还是会触发最糟糕的 Full GC
全部评论
更多面试见:https://m.nowcoder.com/mianshi/top
7 回复 分享
发布于 10-11 10:29 北京
每次调JVM都感觉在给老爷爷做心肺复苏
5 回复 分享
发布于 10-10 11:24 广东
mark
点赞 回复 分享
发布于 10-12 13:03 江西
mark
点赞 回复 分享
发布于 10-11 13:00 天津
接好运
点赞 回复 分享
发布于 10-11 12:47 广东
好家伙这调优笔记比我头发还茂密
点赞 回复 分享
发布于 10-10 11:24 黑龙江
接好运
点赞 回复 分享
发布于 10-09 22:33 浙江
点赞 回复 分享
发布于 10-09 17:19 广东
mark
点赞 回复 分享
发布于 10-09 15:06 北京

相关推荐

爱吃烤肠的牛油最喜欢...:50K是ssp了估计,ssp的人家多厉害都不用说,每年比例大概在百分之5左右
点赞 评论 收藏
分享
1.为什么用rabbtmq来做异步。我说都可以,卡夫卡可能并发性能更高,但rabitmq性能比较综合。2.为什么做异步。3.如果发送了重复的消息,你的项目中怎么保证唯一性。(自己做的是一个记录储存,其实唯一性要求不大。但当时害怕项目存在漏洞还是说在业务里判断,然后卡住)4.为什么要用springboot5.问我引入starter是不是就是把对象引进来。(觉得差不多是,但感觉是有问题的,举了个例子扯着说是这样)6.问我用过mybatis,有没有看过框架里的具体对象等(我说没有,就创建xml文件mapper去操作db,没准备mybatis,只知道一个安全问题)7.rabbtmq怎么保证消息不丢失(又回来了,我答rabbtmq自身持久性,消费者的重试以及三种拒绝策略)算法:lru(期间问我hashmap如果key为空返回啥,我说返回null对象,问我可不可以据此修改判断条件,我想说是但又不确定)最后反问环节问自己最主要的问题,给面试官问无语了,说了句基础...就匆匆结束了。感觉凉凉了,但还抱有一丝幻想,自己还是太菜了,看他的招聘要求只写了个中间件,看redis,mysql,se,juc,jvm比较多,有没有懂面试官心理的友友分析一波。而且面试间也是匆匆忙忙找到的,第一次被拷打项目真有些不知所措,自己准备的点其实在另一个并发场景,后知后觉自己没引导好也是。
查看10道真题和解析
点赞 评论 收藏
分享
评论
18
158
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务