ServerPackCreator JVM 参数调优:Aikars Flags 如何提升 Minecraft 服务器性能
【免费下载链接】ServerPackCreatorCreate a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack!项目地址: https://gitcode.com/gh_mirrors/se/ServerPackCreator
ServerPackCreator是一款为 Minecraft 模组整合包(Forge、NeoForge、Fabric、LegacyFabric、Quilt)生成专用服务器包的开源工具。本文讲解它内置的Aikars Flags——一套面向 Minecraft 服务器优化的 JVM 参数,以及如何根据自身内存快速完成JVM 参数调优,让服务器告别卡顿和 GC 停顿。
什么是 Aikars Flags?
Aikars Flags 是由社区知名 Java 性能专家 Aikar 提出的一组 JVM 启动参数,专为 Minecraft 服务器场景设计。它的核心思路可以概括为三点:
- 🧠选用 G1GC 垃圾回收器:替代老式的 Parallel GC,大幅降低 GC 时的服务器卡顿(俗称"卡服务器");
- ⚖️内存下限 = 上限:
-Xms与-Xmx设为相同值,避免 JVM 运行时反复伸缩内存带来的性能抖动; - ⚡微调 G1 行为:通过年轻代比例、堆区域大小、混合 GC 目标等参数,把停顿控制在 200ms 以内。
对新手来说,你不需要逐个理解这些参数——ServerPackCreator 已把整组参数作为默认值内置。
内置默认值:一套开箱即用的 G1GC 参数
在 ApiProperties.kt 中,fallbackAikarsFlags定义了完整的默认参数集,同样记录在默认配置 serverpackcreator.properties 的configuration.aikar项中。按功能可分为三组:
| 参数组 | 关键参数 | 作用 |
|---|---|---|
| 内存 | -Xms4G -Xmx4G | 固定分配 4GB 堆内存,避免伸缩抖动 |
| 回收器 | -XX:+UseG1GC、-XX:MaxGCPauseMillis=200 | 启用 G1GC,目标停顿 ≤200ms |
| G1 调优 | -XX:G1HeapRegionSize=8M、-XX:InitiatingHeapOccupancyPercent=15等 | 更早触发并发标记,减少 Full GC 风险 |
| 稳定性 | -XX:+AlwaysPreTouch、-XX:+DisableExplicitGC | 预触内存页、禁止代码显式触发 GC |
💡 这组参数基于 4GB 内存设计。服务器内存不同时,请按下一节的表格调整
-Xms/-Xmx。
三种方式设置 Aikars Flags
ServerPackCreator 支持图形界面(GUI)、Web 服务和配置文件三种入口,修改内容完全一致:
1. GUI:Settings 页面
打开图形界面的Settings选项卡,找到全局设置区的 Aikars Flags 文本框(实现见 GlobalSettings.kt),直接粘贴或编辑参数,旁边还提供"还原"与"重置为默认值"按钮。
2. Web 服务:在线配置页
通过 Web 模式访问设置页,可直接查看并修改 Aikars Flags,界面如下:
后端由 SettingsController.kt 负责读写该配置。Web 前端首页同样基于此服务构建:
3. 配置文件:serverpackcreator.properties
最直接的"手动党"方式——在 serverpackcreator.properties 中修改de.griefed.serverpackcreator.configuration.aikar的值即可。
服务器包生成:JVM 参数如何写进启动脚本
这是最关键的一步:你设置的 Aikars Flags 会被自动写入生成的服务器包启动脚本,玩家解压即用,无需手动配置 JVM。
- 生成的
run.sh/run.bat/run.ps1中包含JAVA_ARGS="SPC_JAVA_ARGS_SPC"占位符,生成时被替换为你的参数,模板见 ServerPackHandler.kt; - 占位符与替换逻辑由 ConfigurationHandler.kt 完成;
- Forge/NeoForge 等模组加载器场景下,参数还会同步写入
user_jvm_args.txt; - 全部可用的脚本变量说明见 HELP.md。
此外,如果你为 Web 端的某个整合包不指定自定义启动参数,RunConfigurationService.kt 会自动把全局 Aikars Flags 作为该运行配置的默认启动参数——也就是说,什么都不填,服务器包也自带全套性能调优。
按内存快速调整 -Xmx:调优速查表
默认值面向 4GB 内存,其余场景只需同步修改-Xms与-Xmx(保持两者相等):
| 服务器内存 | 推荐设置 | 适用场景 |
|---|---|---|
| 2 GB | -Xms2G -Xmx2G | 小型私服、5 人以内 |
| 4 GB(默认) | -Xms4G -Xmx4G | 中型整合包、10~20 人 |
| 8 GB | -Xms8G -Xmx8G | 大型模组包、20 人以上 |
| 16 GB | -Xms12G -Xmx12G | 超大型整合包,预留 2~4G 给系统与磁盘缓存 |
其余 G1GC 参数保持默认即可,无需改动。
CLI 模式同样生效
通过命令行运行(接口见 InteractiveCommandLine.kt)生成的服务器包,一样会使用上述 Aikars Flags 写入启动脚本:
常见调优坑位
- 🚫
-Xmx不要超过物理内存:Java 堆之外的系统缓存、线程栈也要占用内存,建议给系统预留 1~2GB; - 🚫不要同时给
-Xms和-Xmx设不同值:这是参数伸缩抖动的常见来源; - ⚠️确认 Java 版本:G1GC 参数在 Java 8+ 均可用,但新版 Minecraft(1.18+)要求 Java 17/21,请先确认整合包要求的版本;
- ✅拿不准就点"重置":GUI 中 Aikars 输入框旁的重置按钮可一键恢复 fallbackAikarsFlags 默认值。
总结
ServerPackCreator 把 Aikars Flags 做成了默认内置 + 三端可改 + 自动注入启动脚本的完整方案:新手零配置即可获得 G1GC 级别的服务器性能调优;进阶用户只需按内存大小调整-Xms/-Xmx两个值,其余参数交给内置默认值。配合 Run-Configs 文档 与 Settings 文档,即可为你的 Minecraft 服务器包打造一套稳定流畅的运行环境。
【免费下载链接】ServerPackCreatorCreate a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack!项目地址: https://gitcode.com/gh_mirrors/se/ServerPackCreator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考