Java 应用启动参数配置文档(更新版)
1. 堆内存设置
-Xms1024m
和 -Xmx1024m
:设置 JVM 初始堆内存和最大堆内存为 1024MB。- 建议:将初始堆内存和最大堆内存设置为相同的值,避免 JVM 动态调整内存带来的停顿和性能损耗。这有助于在生产环境中提升应用的稳定性和响应速度。
2. 堆内存溢出诊断
-XX:+HeapDumpOnOutOfMemoryError
:当堆内存溢出时自动生成内存快照,帮助问题排查。-XX:HeapDumpPath=/path/to/heapdump.hprof
:指定生成的内存快照文件的保存路径,便于后续分析内存溢出问题。
3. 垃圾回收日志
-XX:+PrintGCDetails
:输出垃圾回收的详细信息,方便监控垃圾回收过程。-XX:+PrintGCDateStamps
:为垃圾回收日志添加时间戳,便于分析不同时间段内垃圾回收的频率和时长。-Xloggc:/path/to/gc.log
:指定垃圾回收日志的输出路径。-XX:+UseGCLogfileRotation
:启用垃圾回收日志的滚动机制,避免日志文件过大影响性能。-XX:NumberOfGCLogfiles=10
:设置最多保存 10 个垃圾回收日志文件。-XX:GCLogfileSize=100M
:每个垃圾回收日志文件的最大大小为 100MB,确保日志不会占用过多磁盘空间。
更新后的启动命令示例
java -jar app.jar \
-Xms1024m -Xmx1024m \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/path/to/heapdump.hprof \
-XX:+PrintGCDetails -XX:+PrintGCDateStamps \
-Xloggc:/path/to/gc.log \
-XX:+UseGCLogfileRotation -XX:NumberOfGCLogfiles=10 -XX:GCLogfileSize=100M
参数说明
- 内存设置:
-Xms
和 -Xmx
参数设置相等,避免运行时动态调整堆内存造成的性能问题。 - 内存溢出排查:通过
-XX:+HeapDumpOnOutOfMemoryError
和 -XX:HeapDumpPath
生成堆内存快照,方便后续内存溢出的诊断。 - 垃圾回收日志:开启 GC 日志输出并添加时间戳,启用滚动日志保存机制,方便长期性能监控。