JVM性能调优的6大步骤,及关键调优参数详解

本文详细介绍了JVM性能调优的六个步骤,包括监控GC状态、生成堆dump文件、分析dump、判断优化需求、调整GC类型和内存分配,以及持续分析与调整。同时,讨论了JVM调优参数如内存设置、年轻代与年老代比例、线程堆栈大小等,强调了避免Full GC的重要性。通过对参数的精细调整,可以有效提高JVM的运行效率。
摘要由CSDN通过智能技术生成


对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。
1.Full GC
会对整个堆进行整理,包括Young、Tenured和Perm。Full GC因为需要对整个堆进行回收,所以比较慢,因此应该尽可能减少Full GC的次数。
2.导致Full GC的原因

  • 年老代(Tenured)被写满
    调优时尽量让对象在新生代GC时被回收、让对象在新生代多存活一段时间不要创建过大的对象及数组避免直接在年老代创建对象 。
  • 持久代Pemanet Generation空间不足
    增大Perm Gen空间,避免太多静态对象 ,控制好新生代和年老代的比例
  • System.gc()被显示调用
    垃圾回收不要手动触发,尽量依靠JVM自身的机制
    在对JVM调优的过程中,很大一部分工作就是对于FullGC的调节,下面详细介绍对应JVM调优的方法和步骤。

JVM性能调优方法和步骤

1.监控GC的状态

使用各种JVM工具,查看当前日志,分析当前JVM参数设置,并且分析当前堆内存快照和gc日志,根据实际的各区域内存划分和GC执行时间,觉得是否进行优化。
举一个例子: 系统崩溃前的一些现象:

  • 每次垃圾回收的时间越来越长,由之前的10ms延长到50ms左右,FullGC的时间也有之前的0.5s延长到4、5s
  • FullGC的次数越来越多,最频繁时隔不到1分钟就进行一次FullGC
  • 年老代的内存越来越大并且每
  • 8
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值