当前位置: 首页 > news >正文

JVM参数

文章目录

  • 内存相关参数
    • 堆内存设置
    • 年轻代设置
    • 方法区设置
  • 垃圾回收参数
    • 选择垃圾回收器
    • G1垃圾回收器参数
    • GC日志参数
  • 内存溢出处理

内存相关参数

堆内存设置

最常用的就是这两个参数:

-Xms2g    # 初始堆内存大小
-Xmx4g    # 最大堆内存大小

-Xms设置JVM启动时的初始堆内存大小,-Xmx设置最大堆内存。建议在生产环境中把这两个值设置成一样,避免JVM在运行过程中动态调整堆大小,减少性能开销。

年轻代设置

-Xmn1g                    # 直接设置年轻代大小
-XX:NewRatio=3           # 设置老年代与年轻代的比例
-XX:SurvivorRatio=8      # 设置Eden区与Survivor区的比例

年轻代主要存放新创建的对象,如果你的应用创建对象很频繁,可以适当增大年轻代。一般建议年轻代占堆内存的1/3到1/4。

方法区设置

Java 8之前:

-XX:PermSize=256m         # 永久代初始大小
-XX:MaxPermSize=512m      # 永久代最大大小

Java 8及以后:

-XX:MetaspaceSize=256m    # 元空间初始大小
-XX:MaxMetaspaceSize=512m # 元空间最大大小

方法区存放类的信息,如果你的应用加载了很多类,就需要增大这个区域。

垃圾回收参数

选择垃圾回收器

-XX:+UseSerialGC          # 使用Serial GC
-XX:+UseParallelGC        # 使用Parallel GC
-XX:+UseConcMarkSweepGC   # 使用CMS GC
-XX:+UseG1GC              # 使用G1 GC

不同的垃圾回收器适用于不同场景:

  • Serial GC:适合小型应用
  • Parallel GC:适合吞吐量优先的应用
  • CMS GC:适合低停顿时间的应用
  • G1 GC:适合大内存、低延迟要求的应用

G1垃圾回收器参数

-XX:+UseG1GC                     # 启用G1
-XX:MaxGCPauseMillis=200        # 设置最大GC暂停时间
-XX:G1HeapRegionSize=16m        # 设置G1区域大小

G1是目前比较推荐的垃圾回收器,特别适合大内存的应用。

GC日志参数

-XX:+PrintGC                     # 打印简单GC信息
-XX:+PrintGCDetails             # 打印详细GC信息
-XX:+PrintGCTimeStamps          # 打印GC时间戳
-XX:+PrintGCApplicationStoppedTime  # 打印应用暂停时间
-Xloggc:/path/to/gc.log         # GC日志输出到文件

线上环境建议开启GC日志,方便排查性能问题。

内存溢出处理

配置以下参数可以在发生内存溢出时定位到问题:

-XX:+HeapDumpOnOutOfMemoryError     # OOM时生成堆转储文件
-XX:HeapDumpPath=/com/coldscholor/dump/     # 堆转储文件路径
http://www.dtcms.com/a/299272.html

相关文章:

  • 7月26日京东秋招第一场第二题
  • sssss
  • python面向对象编程详解
  • 机器学习的工作流程
  • JVM-GC 相关知识
  • 配置DNS正反向解析
  • 深度学习(鱼书)day03--神经网络(后两节)
  • 【教程】无需迁移IDE!Augment原生插件实现Cursor无缝平替 Claude-4无限用
  • ClickHouse高性能实时分析数据库-消费实时数据流(消费kafka)
  • Flutter开发实战之路由与导航
  • Redis面试精讲 Day 5:Redis内存管理与过期策略
  • HTTP 协议的基本格式和 fiddler 的用法
  • 15.6 DeepSpeed+Transformers实战:LLaMA-7B训练效率提升210%,显存直降73%
  • Spring Boot 项目启动自动执行逻辑的最佳实践:掌握 CommandLineRunner
  • Windows11下和Vmware中的Ubuntu22.04设置samba服务遇到的一个问题- valid users和guest设置冲突
  • 【架构师从入门到进阶】第五章:DNSCDN网关优化思路——第十节:网关安全-单向加密
  • k8s之控制器详解
  • 什么是Paimon?Paimon是什么?
  • 兼容性问题记录
  • 速通python加密之RSA加密
  • 刷题日记0726
  • AI使能的SVD算子:基于深度学习的矩阵分解方法
  • 个人电脑配置IPv6的详细步骤
  • 【线段树】P8473 [Aya Round 1 H] 破碎的历史|普及+
  • TypeScript compilerOptions 深入全面讲解
  • 20250726-4-Kubernetes 网络-Service DNS名称解析_笔记
  • OCR工具集下载与保姆级安装教程!!
  • DSP在CCS中实现双核在线仿真调试及下载的方法(以TMS320F28x为例)
  • iOS 26,双版本更新来了
  • MyBatis_3