JVM——配置常用参数,GC调优策略

这篇具有很好参考价值的文章主要介绍了JVM——配置常用参数,GC调优策略。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JVM 配置常用参数

  1. Java内存区域常见配置参数概览
  2. 堆参数;
  3. 回收器参数;
  4. 项目中常用配置;
  5. 常用组合;

Java内存区域常见配置参数概览

JVM——配置常用参数,GC调优策略,java笔记整理,jvm,java

堆参数

JVM——配置常用参数,GC调优策略,java笔记整理,jvm,java

回收器参数

JVM——配置常用参数,GC调优策略,java笔记整理,jvm,java

如上表所示,目前主要有串行、并行和并发三种,对于大内存的应用而言,串行的性能太低,因此使用到的主要是并行和并发两种。并行和并发 GC 的策略通过 UseParallelGC UseConcMarkSweepGC 来指定,还有一些细节的配置参数用来配置策略的执行方式。例如:XX:ParallelGCThreadsXX:CMSInitiatingOccupancyFraction 等。 通常:Young 区对象回收只可选择并行(耗时间),Old 区选择并发(耗 CPU)。

项目中常用配置

备注:在Java8中永久代的参数-XX:PermSize-XX:MaxPermSize已经失效。

JVM——配置常用参数,GC调优策略,java笔记整理,jvm,java

常用组合

JVM——配置常用参数,GC调优策略,java笔记整理,jvm,java

常用 GC 调优策略

  1. GC 调优原则;
  2. GC 调优目的;
  3. GC 调优策略;

GC 调优原则

在调优之前,我们需要记住下面的原则:

多数的 Java 应用不需要在服务器上进行 GC 优化; 多数导致 GC 问题的 Java 应用,都不是因为我们参数设置错误,而是代码问题; 在应用上线之前,先考虑将机器的 JVM 参数设置到最优(最适合); 减少创建对象的数量; 减少使用全局变量和大对象; GC 优化是到最后不得已才采用的手段; 在实际使用中,分析 GC 情况优化代码比优化 GC 参数要多得多。

GC 调优目的

将转移到老年代的对象数量降低到最小; 减少 GC 的执行时间。

GC 调优策略

**策略 1:**将新对象预留在新生代,由于 Full GC 的成本远高于 Minor GC,因此尽可能将对象分配在新生代是明智的做法,实际项目中根据 GC 日志分析新生代空间大小分配是否合理,适当通过“-Xmn”命令调节新生代大小,最大限度降低新对象直接进入老年代的情况。

**策略 2:**大对象进入老年代,虽然大部分情况下,将对象分配在新生代是合理的。但是对于大对象这种做法却值得商榷,大对象如果首次在新生代分配可能会出现空间不足导致很多年龄不够的小对象被分配的老年代,破坏新生代的对象结构,可能会出现频繁的 full gc。因此,对于大对象,可以设置直接进入老年代(当然短命的大对象对于垃圾回收来说简直就是噩梦)。-XX:PretenureSizeThreshold 可以设置直接进入老年代的对象大小。

**策略 3:**合理设置进入老年代对象的年龄,-XX:MaxTenuringThreshold 设置对象进入老年代的年龄大小,减少老年代的内存占用,降低 full gc 发生的频率。

**策略 4:**设置稳定的堆大小,堆大小设置有两个参数:-Xms 初始化堆大小,-Xmx 最大堆大小。

**策略5:**注意: 如果满足下面的指标,则一般不需要进行 GC 优化:

MinorGC 执行时间不到50ms; Minor GC 执行不频繁,约10秒一次; Full GC 执行时间不到1s; Full GC 执行频率不算频繁,不低于10分钟1次。文章来源地址https://www.toymoban.com/news/detail-662776.html

到了这里,关于JVM——配置常用参数,GC调优策略的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 常用调优命令及各种 OOM 的应对策略【JVM调优】

    ① jps:显示所有虚拟机进程; ② jstack:生成当前线程快照; ③ jmap:生成 dump 堆转储文件; ④ jhat:与 jmap 搭配使用,生成 dump 的分析结果; ⑤ jstat:监控虚拟机运行时的状态信息; ⑥ jinfo:实时查看和调整虚拟机运行参数。 ① -Xmx:设置堆内存的最大限制; ② -XX:NewS

    2024年02月08日
    浏览(25)
  • 常见JVM参数配置和GC性能优化

    常见的JVM参数配置 垃圾回收统计信息 -XX:+PrintGC     打印GC简要信息 -XX:+PrintGCDetails打印GC的详细信息 -XX:+PrintGCTimeStamps打印CG发生的时间戳 -Xloggc:log/gc.log 指定GC log的位置,以文件输出 -XX:+PrintHeapAtGC 每一次GC前和GC后,都打印堆信息。 堆设置 -Xms:初始堆大,最小堆 -Xmx:最大

    2024年02月16日
    浏览(26)
  • JDK8 Java HotSpot VM GC参数调优

    Java Virtual Machine Technology (JDK8官方) Java Platform, Standard Edition HotSpot 虚拟机垃圾收集调优指南 (JDK8官方) Java平台标准版工具参考(unix) (JDK8官方) 阿里巴巴Dragonwell8用户指南 (Dragonwell官方) Java性能优化之JVM GC(垃圾回收机制)(大鹅coding) 参考文档 目录 前言 省流 默认

    2024年02月04日
    浏览(25)
  • 【Java】图解 JVM 垃圾回收(一):GC 判断策略、引用类型、垃圾回收算法

    垃圾 是指运行程序中 没有任何引用指向的对象 ,需要被回收。 内存溢出 :经过垃圾回收之后,内存仍旧无法存储新创建的对象,内存不够溢出。 内存泄漏 :又叫 “ 存储泄漏 ”,对象不会再被程序使用了,但是 GC 又不能回收它们。例如:IO 流不适用了但是没有被 Close、

    2024年02月19日
    浏览(33)
  • JVM实战篇:GC调优

    目录 一.GC调优的核心指标 1.1吞吐量(Throughput) 1.2延迟(Latency) 1.3内存使用量 二.GC调优的方法 2.1监控工具 Jstat工具 VisualVm插件 Prometheus + Grafana 2.2诊断原因 GC日志 GC Viewer GCeasy 2.3常见的GC模式 正常情况 缓存对象过多 内存泄漏 持续的FULL GC 元空间不足导致的FULL GC 三.修复G

    2024年01月23日
    浏览(31)
  • JVM实战(15)——Full GC调优

    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖,挖的越深,基础越扎实! 阶段1、深入多线程 阶段2、深入多线程设计模式 阶段3、深入juc源码解析

    2024年01月17日
    浏览(25)
  • JVM实战(14)——Young GC调优

    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖,挖的越深,基础越扎实! 阶段1、深入多线程 阶段2、深入多线程设计模式 阶段3、深入juc源码解析

    2024年01月16日
    浏览(25)
  • 【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍

    本文主要针对于综合层面上进行分析JVM优化方案总结和列举调优参数计划。主要包含: 调优之逃逸分析(栈上分配) 调优之线程局部缓存(TLAB) 调优之G1回收器 -XX:+DoEscapeAnalysis 逃逸分析(Escape Analysis) 逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定

    2024年01月25日
    浏览(46)
  • 【JVM】JVM垃圾回收GC相关参数说明

    -XX:+PrintCommandLineFlags : 输出JVM启动参数 -XX:+UseSerialGC :在新生代和老年代使用串行收集器 -XX:SurvivorRatio :设置eden区大小和survivior区大小的比例 -XX:NewRatio :新生代和老年代的比 -XX:+UseParNewGC :在新生代使用并行收集器 -XX:+UseParallelGC :新生代使用并行回收收集器 -XX:+UseParallelO

    2024年02月04日
    浏览(35)
  • jvm调优策略

    jvm调优主要是内存管理方面的调优,包括各个代的大小,GC策略等。         代大小调优   JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对

    2024年02月01日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包