登录/注册

jvm调优参数

更多

以下是常用的 JVM 调优参数详解(中文说明),涵盖内存管理、垃圾回收、性能监控等核心场景,按类别分类整理:


一、堆内存设置(核心参数)

  1. 初始堆大小
    -Xms<size>
    示例-Xms4g
    说明:JVM 启动时分配的初始堆内存(建议与 -Xmx 相同,避免动态调整开销)。

  2. 最大堆大小
    -Xmx<size>
    示例-Xmx8g
    说明:堆内存可扩展到的最大值(通常设为物理内存的 50%~70%)。

  3. 新生代大小
    -Xmn<size>
    示例-Xmn2g
    说明:设置新生代(Young Gen)大小(过小增加 Minor GC 频率,过大会减少老年代空间)。

  4. 元空间大小
    -XX:MetaspaceSize=<size>
    -XX:MaxMetaspaceSize=<size>
    示例-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
    说明:控制元空间(替代 PermGen)初始和最大容量(避免元空间 OOM)。


二、垃圾回收器选择

1. 串行回收器(单线程)

   -XX:+UseSerialGC  # 新生代 Serial + 老年代 Serial Old

2. 并行回收器(吞吐量优先)

   -XX:+UseParallelGC            # 新生代 Parallel Scavenge + 老年代 Parallel Old
   -XX:ParallelGCThreads=<n>     # 设置并行 GC 线程数(建议 = CPU 核心数)
   -XX:MaxGCPauseMillis=<ms>     # 目标最大 GC 停顿时间(毫秒)
   -XX:GCTimeRatio=<ratio>       # GC 时间与应用时间占比(默认 99,即 1%)

3. CMS 回收器(低延迟)

   -XX:+UseConcMarkSweepGC       # 新生代 ParNew + 老年代 CMS
   -XX:CMSInitiatingOccupancyFraction=<percent>  # 老年代使用率触发 CMS(默认 68%)
   -XX:+UseCMSInitiatingOccupancyOnly # 强制使用设定阈值触发 CMS

4. G1 回收器(平衡型,JDK9+ 默认)

   -XX:+UseG1GC
   -XX:MaxGCPauseMillis=200      # 目标停顿时间(通常 100-200ms)
   -XX:G1HeapRegionSize=<size>   # 分区大小(1MB~32MB,需为 2 的幂)
   -XX:InitiatingHeapOccupancyPercent=45 # 堆使用率触发并发标记(默认 45%)

5. ZGC / Shenandoah(超低延迟,JDK11+)

   -XX:+UseZGC                   # JDK11+ 支持
   -XX:+UseShenandoahGC          # JDK12+ 支持
   -XX:ZAllocationSpikeTolerance=5 # ZGC 分配尖峰容忍度(默认 2.0)

三、GC 日志与监控

  1. 开启详细 GC 日志

    -XX:+PrintGCDetails                   # 打印 GC 详情
    -XX:+PrintGCDateStamps                # 添加时间戳
    -Xloggc:/path/to/gc.log               # 输出到文件
  2. 实时监控工具支持

    -XX:+HeapDumpOnOutOfMemoryError       # OOM 时生成堆转储
    -XX:HeapDumpPath=/path/to/dump.hprof  # 指定转储路径
    -XX:NativeMemoryTracking=summary      # 开启 NMT 监控(detail 模式更详细)
  3. GC 日志增强(JDK9+ 使用 Unified Logging)

    -Xlog:gc*,gc+heap=debug:file=gc.log:time:filecount=5,filesize=100m

四、JIT 编译优化

  1. 方法编译阈值

    -XX:CompileThreshold=10000    # 方法调用次数阈值(触发 JIT)
  2. 代码缓存大小

    -XX:ReservedCodeCacheSize=256m  # 避免 JIT 因代码缓存满失效
  3. 分层编译策略(JDK8 默认)

    -XX:+TieredCompilation         # 结合 C1(快速编译)和 C2(优化编译)

五、其他关键参数

  1. 直接内存限制
    -XX:MaxDirectMemorySize=<size>
    说明:限制 NIO 直接内存分配(默认与 -Xmx 相同)。

  2. 线程堆栈大小
    -Xss<size>
    示例-Xss1m
    说明:减少可创建线程数,但过小易导致 StackOverflowError

  3. 禁用显式 GC
    -XX:+DisableExplicitGC
    说明:阻止 System.gc() 触发 Full GC(但需确保 NIO 等不依赖它)。


调优建议流程

  1. 监控先行:使用 jstatjstack、VisualVM 等工具分析瓶颈(GC 频率、STW 时间、内存泄漏)。
  2. 循序渐进:每次只调整 1-2 个参数,对比监控结果。
  3. 场景适配
    • 高吞吐UseParallelGC + 大堆 + 多线程。
    • 低延迟UseG1GC/ZGC + 合理 MaxGCPauseMillis
  4. 压测验证:模拟生产流量,观察 Full GC、CPU 负载、RT 变化。

? 注意事项

  • 生产环境务必设置 -Xms=-Xmx,避免堆震荡。
  • 容器部署时使用 -XX:+UseContainerSupport(JDK8u191+),确保 JVM 识别容器内存限制。

根据实际应用特征(如大数据处理、Web 服务)结合监控数据调整,避免盲目套用参数!

深度解析JVM实践应用

Tomcat自身的调优是针对conf/server.xml中的几个参数的调

2024-04-01 10:24:58

jvm工具有哪些

JVM调优是提高Java应用程序性能的重要手段,而JVM

2023-12-05 11:44:44

jvm常用命令

JVM调优是提升Java应用性能的一个重要方面,通过合理设置JVM

2023-12-05 11:43:12

MCF8316A指南

电子发烧友网站提供《MCF8316A调优指南.pdf》资料免费下载

资料下载 王彬 2024-11-20 17:21:39

MCT8315A指南

电子发烧友网站提供《MCT8315A调优指南.pdf》资料免费下载

资料下载 成尔秩 2024-11-12 14:14:47

MMC DLL

电子发烧友网站提供《MMC DLL调优.pdf》资料免费下载

资料下载 刘军 2024-10-11 11:48:38

MMC SW算法

电子发烧友网站提供《MMC SW调优算法.pdf》资料免费下载

资料下载 佚名 2024-09-20 11:14:02

基于臭氧的Kafka自适应方法ENLHS

,如果不针对实际资源环境进行调优, Kafka使用默认的配置参数无法保证其在毎个生产环境下的性能。因为Kaka自身的配置项非常大,传统的自适应算

资料下载 佚名 2021-05-13 11:39:52

jvm主要是哪里

,栈内存存储方法调用和局部变量,非堆内存用于存储加载的类信息以及一些静态变量等。 1.1 堆内存调优 堆内存是JVM中最主要的内存区域,常见的

2023-12-05 11:37:24

jvm参数的设置和jvm

JVM(Java虚拟机)参数的设置和调优对于提高Java应用程序的性能和

2023-12-05 11:36:05

jvm参数

JVM(Java虚拟机)是Java程序的运行环境,它负责解释Java字节码并执行相应的指令。为了提高应用程序的性能和稳定性,我们可以调优

2023-12-05 11:29:58

什么场景需要jvm

JVM调优是指对Java虚拟机进行性能优化和资源管理,以提高应用程序的运行效率和吞吐量。

2023-12-05 11:14:19

javajvm有几种方法

JVM调优是Java应用程序性能优化过程中的重要步骤,它通过针对JVM进

2023-12-05 11:11:57

Alluxio线程池结构与吞吐量

本文介绍了 Alluxio Master 的线程池结构与每个线程的功能。在调优过程中,利用分析结果调整审计日志的 blocking queue,调整 UFS-SYNC-PREFETCH 线程数,

2022-11-11 11:36:24

关于JVM知识

最近很多小伙伴跟我说,自己学了不少JVM的调优知识,但是在实际工作中却不知道何时对JV

2022-09-14 14:54:56

7天热门专题 换一换
相关标签