`
xiangxingchina
  • 浏览: 520005 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JVM 常见调优参数

 
阅读更多

@@内存调优@@

#初始堆大小   最大堆大小

-Xms(-XX:InitialHeapSize) 

#最大堆大小

-Xmx (-XX:MaxHeapSize)

 

#让JVM在发生内存溢出时自动的生成堆内存快照

-XX:+HeapDumpOnOutOfMemoryError

 

#内存溢出时 存放路径

#默认情况下,保存在JVM的启动目录下名为java_pid<pid>.hprof 的文件里

-XX:HeapDumpPath

 

#当内存溢出发生时执行操作

-XX:OnOutOfMemoryError ="sh ~/cleanup.sh"

 

#设置持久代大小

-XX:PermSize 

#设置持久代最大值

-XX:MaxPermSize

 

 

@@新生代垃圾回收@@

#指定新生代大小

-XX:NewSize and -XX:MaxNewSize

 

#设置新生代和老年代的相对大小

-XX:NewRatio

#-XX:NewRatio=3 指定老年代/新生代为3/1. 老年代占堆大小的 3/4 ,新生代占 1/4 .

 

 

#-XX:SurvivorRatio 指定伊甸园区(Eden)与幸存区大小比例

XX:SurvivorRatio=10 

表示伊甸园区(Eden)是幸存区To大小的10倍(也是幸存区From的10倍) 伊甸园区(Eden)占新生代大小的10/12

 

#指定JVM 在每次新生代GC时,输出幸存区中对象的年龄分布

-XX:+PrintTenuringDistribution

 

#指定JVM 在每次新生代GC时,输出幸存区中对象的年龄分布。

-XX:+PrintTenuringDistribution 

 

 

#设定老年代阀值  幸存区空间目标使用率

XX:MaxTenuringThreshold=10 

-XX:TargetSurvivorRatio=90 

设定老年代阀值的上限为10,幸存区空间目标使用率为90%。

 

 

@@吞吐量收集器@@

#该标志来激活串行垃圾收集器

-XX:+UseSerialGC

 

#选择垃圾收集器为并行收集器 [关注吞吐量]

-XX:+UseParallelGC

 

#选择垃圾收集器为并行收集器 [老年代 优于-XX:+UseParallelGC]

-XX:+UseParallelOldGC

 

吞吐量为垃圾回收时间与非垃圾回收时间的比值 

#-XX:GCTimeRatio=<N>来设定,公式为1/(1+N)

-XX:GCTimeRatio=<value>

 

 

最大暂停时间(具有优先级)

-XX:MaxGCPauseMillis

 

@@CMS收集器@@

HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间。

CMS收集器为老年代垃圾回收提供了几乎完全并发的解决方案,年轻代仍然通过“stop-the-world”方法来进行收集

 

 

会面临两个主要的挑战,需调优:

1 堆碎片

  -- Full GC 处理

2 对象分配率高

  -- 老年代将没有足够的可用空间来容纳一个从年轻代提升过来的对象。

  -- 称为“并发模式失败”,并且JVM会执行堆碎片整理:触发Full GC。

 

 

#激活CMS收集器

-XX:+UseConcMarkSweepGC

 

#该标志激活年轻代使用多线程并行执行垃圾回收

-XX:UseParNewGC

[对于CMS收集器,年轻代GC算法和老年代GC算法是不同的]

 

#以多线程执行并发CMS

-XX:+CMSConcurrentMTEnabled

 

#定义并发CMS过程的线程数(需在生产或压测环境下 根据情况调优)

-XX:ConcGCThreads=<value>

#value=4意味着CMS周期的所有阶段都以4个线程来执行。

#默认 ConcGCThreads = (ParallelGCThreads + 3)/4

 

 

#老年代堆空间的使用率

-XX:CMSInitiatingOccupancyFraction

eg value=75意味着第一次CMS垃圾收集会在老年代被占用75%时被触发。

 

#收集器的增量模式(慎用)

-XX:+CMSIncrementalMode

增量模式经常暂停CMS过程,以便对应用程序线程作出完全的让步。因此,收集器将花更长的时间完成整个收集周期。

通过测试后发现正常CMS周期对应用程序线程干扰太大时,才应该使用增量模式。

 

#永久代也被包括进CMS垃圾回收

XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses

保证当有系统GC调用时,永久代也被包括进CMS垃圾回收的范围内。

 

@@GC日志@@

#开启了简单GC日志模式

-XX:+PrintGC

无法从日志中判断是否GC将一些对象从young generation移到了old generation

 

#开启了详细GC日志模式

-XX:PrintGCDetails

 

#将时间和日期也加到GC日志中

-XX:+PrintGCTimeStamps

-XX:+PrintGCDateStamps

 

#缺省的GC日志时输出到终端的,使用-Xloggc:也可以输出到指定的文件

-Xloggc

分享到:
评论

相关推荐

    jvm常用调优方式

    最后,我们可以通过以下参数来配置 JVM: 堆设置: * -Xms: 初始堆大小 * -Xmx: 最大堆大小 * -XX:NewSize=n: 设置年轻代大小 * -XX:NewRatio=n: 设置年轻代和年老代的比值 * -XX:SurvivorRatio=n: 年轻代中 Eden ...

    个人总结之—JVM性能调优实战

    本文档总结了作者在实践中不断积累的JVM性能调优经验,涵盖了JVM基础知识、内存调优策略、常见性能问题及解决方案等多个方面。希望通过这份总结能够为广大读者提供有价值的参考和帮助,提升应用性能,优化用户体验。...

    第04章 大促高并发系统下JVM如何调优指导03.pdf

    以下是一些常见的JVM调优参数: - `-Xms` 和 `-Xmx`:分别设置JVM初始堆大小和最大堆大小,确保系统在运行过程中不会频繁地扩展或收缩堆,避免性能波动。 - `-XX:NewRatio`:控制年轻代和老年代的比例,优化垃圾...

    JVM 监控 调优 工具

    常见的调优参数包括: - `-Xms` 和 `-Xmx`:设置堆内存的初始大小和最大大小。 - `-XX:NewRatio` 和 `-XX:SurvivorRatio`:控制新生代和Survivor区的比例。 - `-XX:MaxHeapFreeRatio` 和 `-XX:MinHeapFreeRatio`:...

    JAVA JVM性能调优监控工具详解

    本文将详细介绍几种常见的JVM性能调优工具,并通过实际案例帮助读者更好地理解和应用这些工具。 #### 一、jps (Java Virtual Machine Process Status Tool) `jps`是JDK自带的一个简单实用的工具,用于列出当前正在...

    推荐一些JVM原理,JVM调优,JVM内存模型,JAVA并发 电子书1

    常见的调优手段包括调整堆内存大小、设置垃圾回收器(GC)、调整线程堆栈大小、选择合适的垃圾回收策略和参数等。 4. JAVA并发:Java并发编程涉及到多个线程同时运行以提高程序性能,但同时也需要妥善处理线程间...

    JVM性能调优分析过程

    本文将详细解析JVM性能调优分析的过程,并提供常见参数选择配置的建议。 首先,进行JVM参数调优时,我们需要考虑以下几个步骤: 1. **对象占用内存计算**:了解业务系统每秒钟创建的对象数量及其占用的内存空间,...

    JVM性能调优-JVM内存整理及GC回收

    GC调优是JVM性能优化的关键环节,涉及GC参数的调整,如新生代与老年代的比例、存活对象的阈值、并发比等。通过合理设置这些参数,可以实现更高效的内存回收,降低应用暂停时间,提高整体性能。同时,理解GC日志,...

    JVM性能调优-JVM内存整理及GC回收.docx

    JVM性能调优-JVM内存整理及GC回收 JVM(Java Virtual Machine)性能调优是 Java ...JVM 性能调优需要深入理解 JVM 的工作机制和垃圾回收算法,然后根据实际情况选择合适的垃圾回收器和配置参数,以提高 JVM 的性能。

    JVM入门到JVM 调优实战

    【JVM常见参数总结】 JVM有许多可配置参数,如-Xms、-Xmx设定堆内存大小,-XX:NewRatio调整新生代与老年代比例,-XX:+UseG1GC选择垃圾收集器等。理解并熟练掌握这些参数的含义和使用场景,能有效提高JVM性能和稳定性...

    Java高并发编程与JVM性能调优实战 视频教程 下载下载因为太大存百度云盘4.zip

    9. **JVM参数调优**:掌握常用JVM启动参数,如-Xms、-Xmx、-XX:NewRatio、-XX:SurvivorRatio等,以及如何根据系统需求进行参数调整。 10. **实战演练**:通过实际案例,如Web服务器负载测试、大数据处理场景等,...

    JVM调优实战(转)

    JVM调优实战 本文档旨在介绍JVM调优...本文档提供了JVM调优实战的详细介绍,包括JVM内存结构、垃圾回收机制、性能优化策略和JVM参数配置等方面的知识点。通过对这些知识点的掌握,读者可以更好地理解和优化JVM的性能。

    JVM调优工具命令详解.pdf

    在现代的软件开发与运行环境中,Java虚拟机(JVM)的性能调优是非常重要的一环,特别是在处理大型应用程序或者服务时,合适的JVM调优能够显著提升系统性能和稳定性。本篇文档详细介绍了JVM调优工具的命令使用及其...

    马老师jvm调优实战笔记

    常见的 JVM 参数包括堆内存大小、垃圾回收算法、线程数等。了解 JVM 参数的设置是进行调优的基础。 JVM 调优是 Java 开发者们不可或缺的技能,通过了解 JVM 的结构和工作机制,我们可以更好地进行调优,提高 Java ...

    jvm调优的实际应用

    针对这些问题,我们可以调整JVM的启动参数,如-Xms和-Xmx设置初始堆和最大堆大小,-XX:NewRatio设定新生代与老年代的比例,-XX:SurvivorRatio设定新生代中Eden与Survivor区的比例。 在实际应用中,我们常常使用一些...

    JVM 1.42调优中文文档

    文档强调了正确选择和调整JVM参数的重要性,尤其是对于大型、多线程和高内存需求的应用。默认的垃圾收集器可能适用于大多数场景,但在特定条件下,如高并发、大规模数据处理,可能需要定制化的配置来提升性能。 7....

    开发常见jvm问题调优.doc

    ### 开发中常见的JVM问题调优 #### 运行时数据区域参数详解 ##### `-Xms` 和 `-Xmx`: 堆起始值与最大值 - **定义**: `-Xms` 设定了JVM堆空间的初始值,而 `-Xmx` 设定了堆空间的最大值。 - **作用**: 这两个参数...

    JVM性能调优-JVM内存整理及GC回收.pdf

    综上所述,JVM性能调优涉及多个方面,包括理解参数传递机制、掌握不同类型的引用以及深入了解垃圾回收算法和分区处理方式等。通过合理配置和调整这些机制,可以显著提高Java应用程序的性能和稳定性。开发者应根据...

    JVM调优和Linux常见面试题.zip

    在IT行业中,JVM(Java Virtual Machine)调优和Linux系统操作是两个至关重要的技能,尤其是在处理大型企业级应用时。对于Java开发者来说,理解JVM的工作原理并能进行有效的调优,可以显著提升应用程序的性能和稳定...

    JVM性能调优垃圾收集算法虚拟机组成.zip

    本文将深入探讨JVM的组成、垃圾收集的基本概念及其常见算法,以及如何进行性能调优。 首先,JVM主要由以下几个部分组成: 1. **类装载器**:负责加载类文件,完成类的加载、验证、准备和初始化等工作。 2. **运行...

Global site tag (gtag.js) - Google Analytics