jvm参数配置

Jar包直接运行

java -XX:+UseG1GC -Xms2048m -Xmx2048m -XX:MaxGCPauseMillis=200 -jar your-application.jar

Spring Boot Maven插件

在pom.xml配置

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <jvmArguments>
                    -XX:+UseG1GC -Xms2048m -Xmx2048m -XX:MaxGCPauseMillis=200
                </jvmArguments>
            </configuration>
        </plugin>
    </plugins>
</build>

Tomcat部署

修改 catalina.sh (Linux) 或 catalina.bat (Windows):

# 在JAVA_OPTS中添加
export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -Xms2048m -Xmx2048m -XX:MaxGCPauseMillis=200"

2.参数说明

参数作用推荐值
-XX:+UseG1GC 启用G1垃圾收集器 生产环境推荐
-Xms512m 初始堆内存 设为与-Xmx相同
-Xmx2048m 最大堆内存 根据机器内存调整
-XX:MaxGCPauseMillis=200 目标最大GC停顿时间 100-200ms

3.生产环境建议

重要原则

# 初始和最大堆内存应设为相同值(避免动态调整开销)
-Xms2048m -Xmx2048m

完整示例(生产推荐):

-XX:+UseG1GC 
-Xms2048m -Xmx2048m 
-XX:MaxGCPauseMillis=200
-XX:ParallelGCThreads=4 
-XX:ConcGCThreads=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/path/to/dumps

验证参数是否生效

# 查看JVM使用的参数
jcmd <PID> VM.flags
# 或
java -XX:+PrintFlagsFinal -version | grep UseG1GC

 

posted @ 2025-05-29 13:38  jason47  阅读(65)  评论(0)    收藏  举报