插件窝 干货文章 linux怎么在jvm启动参数

linux怎么在jvm启动参数

Java bash 设置 回收器 55    来源:    2025-04-06

在Linux中设置JVM启动参数

在Linux系统中,可以通过多种方式设置JVM启动参数,具体取决于您的应用场景和启动方式。以下是几种常见的方法:

1. 直接启动Java应用时设置

java -Xms512m -Xmx1024m -XX:+UseG1GC -jar your_application.jar

2. 通过环境变量设置

使用JAVA_OPTS或JAVA_TOOL_OPTIONS

export JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
java $JAVA_OPTS -jar your_application.jar

或者

export JAVA_TOOL_OPTIONS="-Xms512m -Xmx1024m -XX:+UseG1GC"
java -jar your_application.jar

3. 对于Tomcat等应用服务器

编辑setenv.sh文件(位于Tomcat的bin目录下):

#!/bin/sh
export CATALINA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -Djava.awt.headless=true"

4. 对于Spring Boot应用

通过application.properties/yml

# application.properties
spring.jmx.enabled=false
server.port=8080

通过命令行参数

java -jar app.jar --spring.jmx.enabled=false --server.port=8080

5. 常用JVM参数示例

  • 内存设置:

    -Xms512m  # 初始堆大小
    -Xmx1024m # 最大堆大小
    -Xss256k  # 每个线程的栈大小
    
  • 垃圾回收:

    -XX:+UseG1GC            # 使用G1垃圾回收器
    -XX:+UseConcMarkSweepGC # 使用CMS垃圾回收器
    -XX:+UseParallelGC      # 使用并行垃圾回收器
    
  • 诊断和监控:

    -XX:+HeapDumpOnOutOfMemoryError  # OOM时生成堆转储
    -XX:HeapDumpPath=/path/to/dumps  # 堆转储路径
    -XX:+PrintGCDetails              # 打印GC详情
    

6. 永久代/Metaspace设置(不同Java版本)

  • Java 8及之前:

    -XX:PermSize=128m
    -XX:MaxPermSize=256m
    
  • Java 8+:

    -XX:MetaspaceSize=128m
    -XX:MaxMetaspaceSize=256m
    

7. 检查当前JVM参数

# 查看某个Java进程的JVM参数
jps -v

# 或者
ps -ef | grep java

根据您的具体应用场景和需求选择合适的设置方式,并调整参数值以达到最佳性能。