吸收了各种MC调优后再进行重新定制的MC JVM参数,同时提供服务端和客户端的方案
如果遇到问题或者有更好的调优,欢迎提出
祝你能收获更多快乐
| JVM参数 | 运行表现 | JDK要求 | 适用场景 |
|---|---|---|---|
| G1GC.txt | 轻度STW均衡GC | JDK8+ | 服务端 & 客户端 |
| G1GC-C.txt | 轻度STW低内存利用GC | JDK8+ | 客户端 |
| ZGC.txt | 无感STW高内存利用GC | JDK21+ | 服务端 & 客户端 & Velocity |
| ZGC-C.txt | 无感STW中内存利用GC | JDK21+ | 客户端 |
-
客户端 服务端 少核心低内存 优选G1GC-C.txt 备选G1GC.txt G1GC.txt 少核心高内存 优选G1GC-C.txt 备选G1GC.txt G1GC.txt 多核心低内存 优选ZGC-C.txt 备选G1GC-C.txt 优选ZGC.txt 备选G1GC.txt 多核心高内存 ZGC-C.txt ZGC.txt
Tip
G1GC-C ZGC-C可以有节省内存的用途
如果想节省内存占用,就把-Xms设置到比-Xmx更低
但是G1GC-C的-Xms不要给太小,不然反复伸缩进程内存会导致STW大幅波动
- 服务端
- 添加到java启动命令行
(在-jar之前) - 写入到txt文件并在启动命令行@引用
(在-jar之前)
(需要JDK9+)
- 添加到java启动命令行
- 客户端
- 添加到启动器自定义JVM参数
(需要删除启动器已有的-XX:+UseG1GC) - 写入到txt文件并在启动器自定义JVM参数@引用
(需要删除启动器已有的-XX:+UseG1GC)
(需要JDK9+)
- 添加到启动器自定义JVM参数
Important
写入到txt时,Windows需要注意行尾必须为LF
Note
你是说,怎么在启动命令行引用?
比如在user_jvm_args.txt里写好了JVM参数
然后启动命令就这样写
java @user_jvm_args.txt -jar server.jar
@user_jvm_args.txt一定要在-jar之前
Tip
推荐使用LTS版本,可以有更广范围的旧版MC兼容性