Press⌘+Kto search
IP: 获取中...
为效率而生, Just tools.goodssoft.com
JVM 启动参数配置工具
可视化配置 Java 虚拟机启动参数,支持内存设置、GC 选择、性能调优等选项
智能参数推荐
根据服务器配置和应用场景,智能推荐最优 JVM 参数配置
场景特点:轻量级、快速启动、低内存占用,适合容器化部署
内存配置
128M8192M
128M16384M
10%75%
M
M
K
垃圾回收器 (GC)
G1 GC 是服务器应用的默认选择,平衡了吞吐量和延迟,适合大堆内存场景。
性能调优
启用激进的优化选项
压缩普通对象指针(堆<32G自动启用)
字符串去重(G1 GC)
其他配置
生成的启动命令
java -Xms512M \
-Xmx1024M \
-XX:NewRatio=2 \
-XX:MetaspaceSize=256M \
-XX:MaxMetaspaceSize=512M \
-Xss1024K \
-XX:+UseG1GC \
-XX:+PrintGC \
-XX:+PrintGCDetails \
-XX:+PrintGCTimeStamps \
-Xlog:gc*:file=/logs/gc.log:time,tags:filecount=5,filesize=10m \
-XX:+UseCompressedOops \
-XX:+UseCompressedClassPointers \
-Duser.timezone=Asia/Shanghai \
-Dfile.encoding=UTF-8 \
-jar your-application.jar快速预设
常用参数说明
-Xms初始堆内存大小,建议与 -Xmx 相同避免动态调整
-Xmx最大堆内存大小,生产环境建议不超过物理内存的 75%
-Xmn / -XX:NewRatio新生代大小,建议设置为堆内存的 30%-50%
-XX:MetaspaceSize元空间初始大小,取代永久代(PermGen)
-Xss线程栈大小,默认 1MB,递归深度大时可适当增加
JVM 调优最佳实践
•生产环境将 -Xms 和 -Xmx 设置为相同值,避免内存动态调整开销
•堆内存不超过物理内存的 75%,预留空间给操作系统和元空间
•选择合适的 GC 算法:大内存用 G1,低延迟用 ZGC/Shenandoah
•开启 GC 日志便于问题排查,生产环境建议开启
•监控 JVM 指标:堆使用率、GC 频率、GC 耗时、线程数
•避免过早优化,先进行性能测试找出瓶颈
关于 JVM 启动参数
JVM (Java Virtual Machine) 启动参数是优化 Java 应用性能的关键。合理配置堆内存、选择合适的垃圾回收器、调整新生代比例等参数,可以显著提升应用的吞吐量和响应速度。
常用参数分类:
- -Xms/-Xmx:堆内存大小设置
- -XX:NewRatio:新生代与老年代比例
- -XX:MetaspaceSize:元空间大小
- -Xss:线程栈大小
- -XX:+UseG1GC:使用 G1 垃圾回收器
性能调优建议:
- 生产环境将 -Xms 和 -Xmx 设为相同值
- 堆内存不超过物理内存的 75%
- 大堆(>16GB)优先选择 G1 GC 或 ZGC
- 低延迟场景考虑 ZGC 或 Shenandoah
- 开启 GC 日志便于问题排查
常见问题
如何设置合适的堆内存大小?
建议设置为物理内存的 60-75%。例如 8GB 内存的服务器,堆内存可设置为 5-6GB。
什么是 OOM (OutOfMemoryError)?
当 JVM 堆内存不足时抛出的错误。可通过增大 -Xmx 值或优化代码减少内存占用来解决。
G1 GC 和 Parallel GC 有什么区别?
G1 GC 适合大内存、低延迟场景;Parallel GC 适合小内存、追求高吞吐量的场景。
什么时候使用 ZGC?
ZGC 适合对延迟要求极高的应用(如金融交易),需要 Java 15+ 版本支持。