百度
360搜索
搜狗搜索

怎么在linux上设置jvm参数详细介绍

在 Linux 上设置 JVM 参数主要通过启动 Java 应用时的命令行参数实现,以下是具体操作方式和常见参数说明:

一、核心设置方式

JVM 参数需在启动 Java 进程时通过java -X参数java -D参数传递,常见形式为:
bash

 JVM参数  你的应用.jar

JVM参数 主类全限定名

二、常见 JVM 参数分类

1.
堆内存参数(最常用)

  • -Xms<size>:设置堆内存初始大小(如-Xms512m表示初始 512MB)。
  • -Xmx<size>:设置堆内存最大大小(如-Xmx2g表示最大 2GB)。
  • -Xmn<size>:设置年轻代大小(如-Xmn1g,剩余内存自动分配给老年代)。
  • -XX:MetaspaceSize=<size>:设置元空间(JDK8+,替代永久代)初始大小(如-XX:MetaspaceSize=256m)。
  • -XX:MaxMetaspaceSize=<size>:设置元空间最大大小(默认无限制,建议显式指定如-XX:MaxMetaspaceSize=512m)。

2.
垃圾回收(GC)参数

  • 指定 GC 算法
    • -XX:+UseSerialGC:串行 GC(适合小内存、单 CPU 场景)。
    • -XX:+UseParallelGC:并行 GC(适合 CPU 密集型、吞吐量优先场景)。
    • -XX:+UseG1GC:G1 收集器(适合大内存、低延迟场景,JDK9 + 推荐)。
    • -XX:+UseZGC:ZGC 收集器(超低延迟,JDK11 + 实验特性)。

  • GC 日志
    • -XX:+PrintGCDetails:打印 GC 详细日志。
    • -Xloggc:/path/gc.log:指定 GC 日志输出路径(如-Xloggc:/var/log/app_gc.log)。
    • -XX:+UseGCLogFileRotation:启用 GC 日志滚动。
    • -XX:NumberOfGCLogFiles=5:保留 5 个历史日志文件。
    • -XX:GCLogFileSize=100M:每个日志文件最大 100MB。

3.
其他常用参数

  • -XX:+HeapDumpOnOutOfMemoryError:OOM 时自动生成堆转储文件。
  • -XX:HeapDumpPath=/path/heapdump.hprof:指定堆转储文件路径(如-XX:HeapDumpPath=/var/log/)。
  • -XX:MaxDirectMemorySize=<size>:限制直接内存(DirectByteBuffer)最大大小(如-XX:MaxDirectMemorySize=1g)。
  • -D参数名=值:设置系统属性(如-Duser.timezone=Asia/Shanghai设置时区)。

三、示例:完整启动命令

假设你有一个 Spring Boot 应用app.jar,需要设置:

  • 堆内存初始 512MB,最大 2GB;
  • 年轻代 1GB;
  • 使用 G1GC;
  • 记录 GC 日志到/var/log/app_gc.log
  • OOM 时生成堆转储到/var/log/

启动命令如下:
bash

 

-Xloggc:/var/log/app_gc.log

/var/log/

app.jar

四、注意事项

  1. 参数顺序无关:JVM 会最终合并参数(后定义的同名参数可能覆盖前一个,需注意顺序)。
  2. 生产环境建议
    • 始终显式设置-Xms-Xmx并保持相等,避免堆扩容带来的性能波动。
    • 根据应用类型选择 GC 算法(如电商大促场景推荐 G1GC,低延迟交易系统可选 ZGC)。
    • 定期分析 GC 日志(可用gceasy.ioJProfiler工具),优化内存和 GC 配置。

  3. 验证参数是否生效:启动应用后,通过jinfo -flags <进程ID>查看实际生效的 JVM 参数。

阅读更多 >>>  java传统编程是什么

网站数据信息

"怎么在linux上设置jvm参数"浏览人数已经达到17次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:怎么在linux上设置jvm参数的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!