0

0

常用的 jvm 调优的参数都有哪些?

煙雲

煙雲

发布时间:2025-12-02 09:30:07

|

982人浏览过

|

来源于php中文网

原创

JVM调优参数主要涉及堆内存、垃圾回收等,-Xms与-Xmx设相同值可避免扩展开销,-Xmn调整年轻代大小以减少Minor GC频率,-XX:NewRatio和-XX:SurvivorRatio优化代间比例;GC选择上,UseParallelGC适合吞吐场景,UseG1GC平衡停顿与吞吐,UseZGC适用于大堆低延迟需求。

常用的 jvm 调优的参数都有哪些?

常用的 JVM 调优参数主要围绕堆内存、垃圾回收、空间和运行时行为展开。合理设置这些参数可以提升应用性能、减少 GC 停顿、避免内存溢出等问题。

堆内存相关参数

控制 JVM 堆的大小是调优的基础,直接影响应用的内存使用和 GC 行为。

  • -Xms:设置 JVM 启动时的初始堆大小,建议与 -Xmx 设置相同,避免动态扩展带来的性能损耗。例如:-Xms2g
  • -Xmx:设置最大堆内存大小,防止内存无限制增长。例如:-Xmx4g
  • -Xmn:设置年轻代大小,适当增大可减少 Minor GC 频率。例如:-Xmn1g
  • -XX:NewRatio=:设置年轻代与老年代的比例(如 2 表示老年代 : 年轻代 = 2:1)
  • -XX:SurvivorRatio=:设置 Eden 区与每个 Survivor 区的比例,默认 8 表示 Eden : S0 : S1 = 8:1:1

垃圾回收器选择

不同业务场景适合不同的 GC 策略,选择合适的回收器对延迟和吞吐量影响很大。

  • -XX:+UseSerialGC:串行回收器,适用于单核环境或小型应用
  • -XX:+UseParallelGC:并行回收器(吞吐量优先),适合后台批处理服务
  • -XX:+UseConcMarkSweepGC:CMS 回收器(已废弃),低延迟场景曾常用
  • -XX:+UseG1GC:G1 回收器,兼顾吞吐和停顿时间,现代应用推荐使用
  • -XX:+UseZGC:ZGC,支持超大堆(TB 级),停顿时间极短(
  • -XX:+UseShenandoahGC:Shenandoah,类似 ZGC,低延迟,Red Hat 主导

GC 行为与监控参数

用于优化 GC 细节行为和输出日志,便于分析性能问题。

动感购物HTML
动感购物HTML

修正了V1.10的一些BUG感购物HTML系统是集合目前网络所有购物系统为参考而开发,代码采用DIV编号,不管从速度还是安全我们都努力做到最好,此版虽为免费版但是功能齐全,无任何错误,特点有:专业的、全面的电子商务解决方案,使您可以轻松实现网上销售;自助式开放性的数据平台,为您提供充满个性化的设计空间;功能全面、操作简单的远程管理系统,让您在家中也可实现正常销售管理;严谨实用的全新商品数据库,便于

下载
  • -XX:+PrintGC-verbose:gc:输出 GC 基本信息
  • -XX:+PrintGCDetails:输出详细的 GC 日志
  • -XX:+PrintGCDateStamps:打印 GC 发生的时间戳
  • -Xlog:gc*:file.log:JDK 9+ 推荐的日志方式,更灵活(替代旧参数)
  • -XX:MaxGCPauseMillis=:G1 中设置期望的最大 GC 停顿时间目标
  • -XX:G1HeapRegionSize=:设置 G1 的 Region 大小

栈与元空间参数

控制线程栈和类元数据的内存分配。

  • -Xss:设置每个线程的栈大小,减少内存占用但过小可能引发 StackOverflowError
  • -XX:MetaspaceSize=:设置元空间初始大小,避免频繁触发元空间扩容
  • -XX:MaxMetaspaceSize=:限制元空间最大值,防止元空间无限增长导致 OOM

基本上就这些常用参数。实际调优要结合应用类型(如高并发 Web 服务 vs 批处理)、堆大小、GC 日志和监控工具(如 JVisualVM、Arthas、Prometheus)综合分析。不复杂但容易忽略的是日志配置和回收器选型,这两个往往决定调优成败。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

387

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

571

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

387

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

571

2023.08.10

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

34

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

14

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

33

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

18

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

12

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 8.4万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 6.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号