美文网首页
JVM GC调优关键点

JVM GC调优关键点

作者: scvthedefect | 来源:发表于2017-07-07 12:59 被阅读0次

1. 掌握不同的GC算法之间区别与各自适用场景

  1. Serial: 单线程, 无论Young GC 还是 Full GC 均会造成卡顿(stop-the-world),适用于CPU资源严重受限的情况
  2. Throughput: 又称Parallel GC, 是Serial的多线程并行版,在stop-the-world期间使用多个线程执行GC.
  3. CMS: Concurrent GC(并发型GC) 即在对Old Gen/PermGen 进行GC时,不会暂停应用线程(应用线程与GC线程同时运行,即一边扔垃圾一边收拾房间),然而Young GC时仍然会暂停应用线程。与Parallel相比优点是吞吐量更大,然而Old Gen GC时会消耗更多CPU资源。与G1相比,适用于堆相对较小的场景。
  4. G1: 与CMS同为Concurrent GC, 以metaspace的概念取代PermGen, GC时采用的Region(分区)的方式,与CMS相比适用于堆较大的情况(4G以上)。

2. 获悉JVM实时状态及GC操作日志

  1. jstat, jconsole等JDK自带工具
  2. Java Flight Record 等商用工具
  3. 工具的可选项

3. JVM调优的核心目标

更高的吞吐量,即应用线程运行时间占总运行时间的百分比最高:

吞吐量 = 应用线程运行时间 / (应用线程运行时间 + GC线程运行时间)

4. JVM调优时需要考虑的点

  1. Heap size的平衡
    • Heap size较小,优点:Full GC的平均时长较短;缺点:Young GC会非常频繁;
    • Heap size较大,优点:GC的频率减少;缺点:延长Full GC执行的时间;
    • Heap size的自适应调整机制
  2. GC线程的数量
    • 配置线程数量的参考公式

相关文章

  • JVM GC调优关键点

    1. 掌握不同的GC算法之间区别与各自适用场景 Serial: 单线程, 无论Young GC 还是 Full G...

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

    JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。 1.Full GC ...

  • Java架构师面试题——JVM性能调优

    JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。 1.Full GC ...

  • JVM GC调优入门

    JVM GC调优入门 这篇文章会介绍几个常用的调优参数,再通过两个案例介绍如何进行JVM GC调优。阅读这篇文章的...

  • 调优

    1.8默认为parallel GC 使用G1 GC日志 调优 根据需求进行JVM规划和预调优 优化运行JVM运行环...

  • JVM调优

    一、JVM内存调优 对JVM内存的系统级的调优策略主要是减少GC的频率和Full GC的次数。 1️⃣Full G...

  • (六)、jvm调优

    2018-10-03 推荐原文 原文作者:纯洁的微笑 什么是jvm调优呢?jvm调优就是根据gc日志分析jvm内存...

  • JVM系列篇:JVM性能调优的6大步骤,及关键调优参数详解

    本系列会持续更新。 一、JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数...

  • gc调优我们到底在调整什么

    java开发一般都会涉及到jvm调优,其中gc调优是个重点项。那gc调优调整的究竟是什么呢?准确来说是业务。下面围...

  • Java知识图谱

    Java基础 JVM JVM内存模型和结构 GC原理&内存分配策略 性能调优:Thread Dump class ...

网友评论

      本文标题:JVM GC调优关键点

      本文链接:https://www.haomeiwen.com/subject/fpslhxtx.html