带你“搞搞”JVM调优原理深度剖析、服务线上优化实践

本文详细介绍了JVM调优的原因,包括内存溢出、垃圾回收性能下降等问题。讨论了JVM调优的原则,如设置合适的GC时间和次数,避免Full GC。阐述了JVM调优的GC原理,包括垃圾定义、查找算法和清除方法。通过实际案例分析GC日志,调整Young&Old比例、Eden&S0S1,探讨了吞吐量优先和响应时间优先的调优策略,并介绍了G1垃圾回收器的配置。通过JVM调优,解决了服务性能问题。
摘要由CSDN通过智能技术生成

在这里插入图片描述

  • jvm调优原因 — 为什么要进行jvm调优!(海恩法则,墨菲定律)
  • jvm调优原理 — 垃圾回收算法,如何进行调优
  • jvm调优实战 — 设置jvm调优参数,根据这些参数压力测试
  • jvm调优gc日志,根据日志情况,对服务进行再次调优

1 为什么要进行JVM调优?

思考1: 项目上线后,什么原因使得我们需要进行jvm调优

  • 垃圾太多(java线程,对象占满内存),内存占满了,程序跑不动了!!
  • 垃圾回收线程太多,频繁的回收垃圾(垃圾回收线程本身也会占用资源: 占用内存,cpu资源),导致程序性能下降
  • 回收垃圾频繁导致STW

因此基于以上的原因,程序上线后,必须进行调优,否则程序性能就无法提升;也就是程序上线后,必须设置合理的垃圾回收策略;

思考2: jvm调优的本质是什么??

答案: 回收垃圾,及时回收没有用垃圾对象,及时释放掉内存空间

思考3: 基于服务器环境,jvm堆内存到底应用设置多少内存?

  • 32位的操作系统 — 寻址能力 2^32 = 4GB ,最大的能支持4gb; jvm可以分配 2g+

  • 64位的操作系统 — 寻址能力 2^64 = 16384PB , 高性能计算机(IBM Z unix 128G 200+)
    在这里插入图片描述

jvm堆内存不能设置太大,否则会导致寻址垃圾的时间过长,也就是导致整个程序STW, 也不能设置太小,否则会导致回收垃圾过于频繁;

整理了一些文档笔记。 也还整理了一些面试资料&最新2020收集的一些大厂的面试真题(都整理成文档,小部分截图),有需要的请点这里、这里,暗号:CSDN。

在这里插入图片描述

在这里插入图片描述

整理了一些文档笔记。 也还整理了一些面试资料&最新2020收集的一些大厂的面试真题(都整理成文档,小部分截图),有需要的请点这里、这里,暗号:CSDN。

2 JVM调优原则

  1. gc时间足够小 (堆内存设置要足够小)
    在这里插入图片描述

  2. gc次数足够少 (堆内存设置足够大)---- 垃圾装满了(很长时间才能装满空间),才开始回收垃圾

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值