吸收了各种MC调优后再进行重新定制的MC JVM参数,同时提供服务端和客户端的方案
如果遇到问题或者有更好的调优,欢迎提出
| JVM参数 | 用途 | JDK要求 | 适用范围 |
|---|---|---|---|
| G1GC.txt | 轻微STW均衡GC | JDK8+ | 服务端 & 客户端 |
| ZGC.txt | 无感STW高内存开销GC | JDK17+ | 服务端 & 客户端 & Velocity |
| SGC.txt | 无感STW中等内存开销GC | JDK24+ | 服务端 & 客户端 |
-
客户端 服务端 低主频少核心 G1GC.txt G1GC.txt 低主频多核心 ZGC.txt / SGC.txt G1GC.txt 高主频少核心 ZGC.txt / SGC.txt G1GC.txt 高主频多核心 ZGC.txt / SGC.txt ZGC.txt / SGC.txt
Tip
G1GC和SGC可以有节省内存的用途
如果想节省内存占用,就把-Xms设置到比-Xmx更低
但是G1GC的-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兼容性