你知道哪些JVM调优参数?

发布时间:2024年01月05日

JVM(Java虚拟机)调优是一个关键的步骤,因为它决定了Java应用程序的性能和稳定性。以下是一些常见的JVM调优参数:

  1. 堆内存大小(Heap Size):这是JVM调优中最重要的一部分,因为它决定了Java应用程序可以使用的最大内存量。你可以通过设置-Xmx-Xms参数来调整堆内存的大小。一般来说,可以根据应用程序的需求和系统可用内存来设置。
  2. 年轻代(Young Generation)和老年代(Old Generation)的比例(Survivor Space Ratio):年轻代和老年代是JVM中的两个内存区域,用于垃圾回收和对象的年轻化和老化。这个比例可以通过-XX:NewRatio-XX:SurvivorRatio参数进行调整。
  3. 年轻代(Young Generation)的空间大小:可以通过-XX:NewSize-XX:MaxNewSize参数来调整年轻代的内存大小。一般来说,可以尝试逐步减小年轻代的大小,同时观察性能指标。
  4. 老年代(Old Generation)的空间大小:可以通过-XX:MaxHeapSize参数来调整老年代的大小。如果应用程序的数据量大且稳定,可以考虑增大老年代的大小。
  5. 垃圾回收频率(Garbage Collection Frequency):可以通过设置-XX:GCTimeRatio参数来调整垃圾回收的频率。一般来说,较高的GCTimeRatio值意味着垃圾回收的频率较低,但需要更多的CPU时间来完成垃圾回收。
  6. 并行和并发垃圾收集(Parallel and Concurrent GC):通过设置-XX:+UseParallelGC-XX:+UseConcMarkSweepGC参数,可以选择不同的垃圾收集器,它们提供了不同的性能和资源使用模式。
  7. 自适应的垃圾收集(Adaptive GC):通过设置-XX:+UseAdaptiveSizePolicy参数,JVM会根据运行时的性能指标自动调整堆内存的大小和其他参数。
  8. 其他参数:还有一些其他的JVM参数,如-XX:+UseTLAB(启用TLAB分配)、-XX:+UseCompressedOops(压缩对象引用)等,可以根据需要进行调整。

**「堆栈内存相关」 **
-Xms 设置初始堆的大小
-Xmx 设置最大堆的大小
-Xmn 设置年轻代大小,相当于同时配置-XX:NewSize和-XX:MaxNewSize为一样的值
-Xss 每个线程的堆栈大小
-XX:NewSize 设置年轻代大小(for 1.3/1.4)
-XX:MaxNewSize 年轻代最大值(for 1.3/1.4)
-XX:NewRatio 年轻代与年老代的比值(除去持久代)
-XX:SurvivorRatio Eden区与Survivor区的的比值
-XX:PretenureSizeThreshold 当创建的对象超过指定大小时,直接把对象分配在老年代。
-XX:MaxTenuringThreshold设定对象在Survivor复制的最大年龄阈值,超过阈值转移到老年代

**「垃圾收集器相关」 **
-XX:+UseParallelGC:选择垃圾收集器为并行收集器。
-XX:ParallelGCThreads=20:配置并行收集器的线程数
-XX:+UseConcMarkSweepGC:设置年老代为并发收集。
-XX:CMSFullGCsBeforeCompaction=5 由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。此值设置运行5次GC以后对内存空间进行压缩、整理。
-XX:+UseCMSCompactAtFullCollection:打开对年老代的压缩。可能会影响性能,但是可以消除碎片
**「辅助信息相关」 **
-XX:+PrintGCDetails 打印GC详细信息
-XX:+HeapDumpOnOutOfMemoryError让JVM在发生内存溢出的时候自动生成内存快照,
**排查问题用 **
-XX:+DisableExplicitGC禁止系统System.gc(),防止手动误触发FGC造成问题.
-XX:+PrintTLAB 查看TLAB空间的使用情况

请注意,调优是一个迭代的过程,通常需要不断观察应用程序的性能指标,并根据需要进行调整。在进行任何调优之前,建议先进行充分的测试和验证,以确保不会对应用程序的正常运行造成负面影响。

文章来源:https://blog.csdn.net/qq_33240556/article/details/135334606
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。