当前位置: 首页 > 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.lryc.cn/news/600438.html

相关文章:

  • 学习游戏制作记录(剑投掷技能)7.26
  • Flutter开发实战之原生平台集成
  • 暑期算法训练.9
  • 如何查找php配置文件php.ini
  • ICMPv6报文类型详解表
  • 面条式代码(Spaghetti Code)
  • 编程与数学 03-002 计算机网络 06_网络层职责
  • RK3568笔记九十三:基于RKNN Lite的YOLOv5目标检测
  • 【Spring AI】SiliconFlow-硅基流动
  • MySQL操作进阶
  • 备份一下我的 mac mini 的环境变量配置情况
  • Android Studio Profiler工具使用流程
  • MyBatis_3
  • 零基础学后端-PHP语言(第二期-PHP基础语法)(通过php内置服务器运行php文件)
  • 【安全漏洞】防范未然:如何有效关闭不必要的HTTP请求方法,保护你的Web应用
  • Java中List集合对象去重及按属性去重
  • linux内核电源管理
  • Java同步锁性能优化:15个高效实践与深度解析
  • [spring6: Mvc-函数式编程]-源码解析
  • 栈----2.最小栈
  • 【VLLM】open-webui部署模型全流程
  • JavaWeb(苍穹外卖)--学习笔记11(Filter(过滤器) 和 Interceptor(拦截器))
  • JavaScript中.splice()的用法
  • 从压缩到加水印,如何实现一站式图片处理
  • 动态SQL标签
  • 【动态规划-斐波那契数列模型】理解动态规划:斐波那契数列的递推模型
  • 【深度之眼机器学习笔记】04-01-决策树简介、熵,04-02-条件熵及计算举例,04-03-信息增益、ID3算法
  • 深分页性能问题分析与优化实践
  • [硬件电路-94]:模拟器件 - 信号耦合,让被放大信号与静态工作点的直流偏置信号完美的融合
  • 算子推理是什么