当前位置:首页 > 后端开发 > 【JVM】记一次JVM调优经历

【JVM】记一次JVM调优经历

7个月前 (05-26)58

【本文图片别放大,放大就模糊,我电脑本地没事,传上去就这样。哎!抱歉了!】 

事出起因,通过grafana查看Jvm运行情况。

发现每分钟GC次数频繁,而且主要是ParNew GC,通过查资料,发现该垃圾收集器对应JVM 堆的新生代。

【JVM】记一次JVM调优经历 _ Java侠

通过Arthas查一下内存分配情况。

【JVM】记一次JVM调优经历 _ Java侠

可以看到堆内存一共分配了4G。

然后新生代(eden + survivor)和老年代(cms)分配比例接近:1 : 3

多执行几次 memory 命令试试,果然发现了重大问题。

eden 使用率频繁从20%多到90%多,再到20%多,再到90%,这无疑印证了再频繁进行ParNew GC

【JVM】记一次JVM调优经历 _ Java侠

     很明显是由于新生代内存空间不足,然而又不断在新生代分配对象导致的。

    看了,一下pod 的内存limit上限可是8g啊,怎么Jvm堆内存才分配4G。

    -Xms1024m 

    -Xmx4096m  (堆最大内存)

    -Xmn512m (新生代大小)

    -Xss2048K

    -XX:MetaspaceSize=128m

    -XX:MaxMetaspaceSize=512m

   这是妥妥的浪费啊,推测可能是历史原因,最开始每个Pod可能就4g内存,后来开发人员发现内存不足,便申请提升内存至8g,可是后来忘了修改jvm的堆内存大小,相当于白申请了~

   给它改一下吧。

   -Xms1024m

   -Xmx6144m (堆分配6g)

   -Xmn2048m (新生代2g,也就是老年代 4g,比例为:1:2)

   -Xss512K

   -XX:MetaspaceSize=128m

    大概画了一下JVM内存分配图。

【JVM】记一次JVM调优经历 _ Java侠

运行一段时间了,看看效果,emm....,果然降低不少啊!

【JVM】记一次JVM调优经历 _ Java侠

思考:为什么我们的开发人员一直都没有去关注过这件事呢?

作者:Coinker
来源链接:https://blog.csdn.net/csp_6666/article/details/124764048

标签: JVM调优

“【JVM】记一次JVM调优经历” 的相关文章

记录 RocketMQ JVM 配置

JVM 配置项 RocketMQ 建议使用JDK1.8的最新发布版本,server编译器和8G的堆内存。设置Xms和Xmx值相同,避免JVM反复调整堆内存大...

深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型

我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

小白入门JVM最好教程(记得收藏)

小白入门JVM最好教程(记得收藏)

大家好,最近在准备面试,所有整理出来一篇JVM 入门的文章 了解JVM无论是对找工作还是面试都十分有必要的  首先要了解的是什么是JVM?本质上...

哥们,你真以为你会做这道JVM面试题?

哥们,你真以为你会做这道JVM面试题?

前言 有关Java虚拟机类加载机制相关的文章一搜一大把,我这里也不必再赘述一遍了。 我这里捞出一道code题要各位大佬来把玩把玩,如果你一眼就看出了...

jvm系列(七):jvm调优-工具篇

jvm系列(七):jvm调优-工具篇

16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化。工具做...

java中栈内存与堆内存(JVM内存模型)

java中栈内存与堆内存(JVM内存模型)

java中栈内存与堆内存(JVM内存模型)   Java中堆内存和栈内存详解1 和 Java中堆内存和栈内存详解2 都粗略讲解了栈内存和堆内存的区别,以及代码中哪...

JVM并发机制的探讨——内存模型、内存可见性和指令重排序

JVM并发机制的探讨——内存模型、内存可见性和指令重排序

【转】http://my.oschina.net/chihz/blog/58035 文章写的非常好,为作者点赞。 JAVA内存模型   对于我们平时开发的业务应用来说...

学习笔记(15):Java系列技术之JVM调优-JVM的总体结构

立即学习:https://edu.csdn.net/course/play/9698/206488?utm_source=blogtoedu 课程笔记关注公众号 :“发...

2.1 jvm内存模型

2.1 jvm内存模型

1. java结构体系 Description of Java Conceptual Diagram(java结构)     &nbs...