免费服务器存档器

免费服务器存档器

面向低内存Minecraft服务器的堆感知延迟降低器。监测JVM堆内存,并在垃圾回收暂停触发前逐步缩减AI计算、生物生成和视距——适用于Falixnodes、Minehut、自托管等任何受限在2-4GB内存的环境。

Free Server Saver

面向低内存 Minecraft 服务器的卡顿消除器(Falixnodes、Minehut、自托管)——专为内存被限制在 2-4 GB 的服务器设计。

问题

如果你在服务器上遇到过以下任何情况,那它们都是同一个根源造成的:

  • 生物瞬移 5-10 格,而不是平滑移动
  • 即使只有 2 人在线,你和朋友也会被断开连接
  • 服务器每隔几分钟就会冻结半秒钟
  • 玩了一个小时还好好的,然后“服务器因内存不足而崩溃”
  • 即使已启用 RAM Boost,仍然出现“OutOfMemoryError: Metaspace”错误

所有这些问题都是垃圾回收暂停导致的。你的服务商给你分配了很小的堆内存,模组包填满了它,JVM 就会停止游戏世界来进行清理。对玩家来说,这看起来和网络延迟完全一样。

解决方案

Free Server Saver 每 2 秒检测一次堆内存压力,并在堆内存耗尽之前,逐步缩减 AI 游戏刻、生物生成、视距和区块加载。不会再有 GC 暂停、瞬移或断线。

工作原理 —— 5 个等级,恢复时采用滞回控制

  • 堆内存低于 60% —— 正常 —— 原版行为
  • 60-70% —— L1 —— 远处的生物隔一刻度运行;50% 的自然生成被拒绝
  • 70-80% —— L2 —— 远处的生物以 1/8 的刻度速率运行;所有自然生成被拒绝
  • 80-85% —— L3 —— 视距压缩至 6 个区块
  • 85% 以上 —— L4 紧急 —— 远处的生物被强制丢弃;服务器刻速率减半

当堆内存恢复后,所有更改都会自动还原。

保护机制 —— 即使在 L4 等级下也保持正常

  • Boss(末影龙、凋灵、循声守卫、远古守卫者、劫掠兽、疣猪兽,或任何最大生命值 >80 的生物)
  • 村民、流浪商人、铁傀儡、悦灵 —— 你的刷铁塔和交易大厅继续正常工作
  • 已命名、拴绳、驯服、有持久标签的生物
  • 处于战斗状态的生物 —— 保持完整速率运行
  • 刚生成(< 10 秒)的生物 —— 有宽限期
  • 农作物、树叶、雪、火 —— 随机刻永远不会被触及(这些由 Lithium 处理得更好)

还解决以下问题

  • 4 GB 世界大小上限(免费主机的硬性限制)—— 使用 /fss storage 查看,使用 /fss prune 识别可修剪的区块
  • 10 分钟启动限制 —— 启动时历史记录 + 提前预警
  • Metaspace 内存溢出 —— RAM Boost 增加的是堆内存,而不是 Metaspace。我们单独监控它
  • 区块生成卡顿 —— 使用 /fss pregen <radius> 预生成出生点区域
  • 刷怪塔检测 —— 可选扫描,标记包含 30 个以上同类型生物的区块
  • 实体卡死导致的崩溃 —— 重复抛出相同刻异常的实体/方块实体会被自动隔离,以免它们导致无人值守的服务器崩溃(如果安装了 Neruina / Bug Fix Mod / Failsafe,则完全交由它们处理;Boss 永远不会被丢弃)

与所有模组兼容良好

Free Server Saver 会检测其他的性能优化模组,并选择让步而不是与其冲突。可与之并排安装:

  • Lithium、FerriteCore、ModernFix —— 它们处理静态优化;我们处理自适应优化
  • Adaptive Performance Tweaks、Tick Dynamic、Tick Tweaks —— 我们让位于它们的刻时间逻辑
  • Where's my Brain、DAB、OptimizeMod、Immersive Optimization、No See No Tick —— 我们让位于它们的距离节流
  • Chunky —— 我们让出预生成命令,使用它更好的实现

启动日志会显示哪些模块已让位及其原因。不会双重节流,不会发生 /tick rate 冲突,也不会出现意外情况。

命令

全部位于 /fss(或完整别名 /freeserversaver)下,仅管理员可用(权限等级 2):

  • help —— 所有子命令及其描述
  • status —— 当前等级 + 堆内存百分比
  • metrics —— 堆内存、等级、玩家数、区块数、视距
  • history —— 最近 20 次等级转换,带颜色标识
  • env —— 服务器启动时的 JVM 堆内存/CPU 快照,含 RAM Boost 检测
  • lagspikes —— 最近超过 100ms 的游戏刻及其发生时的堆内存状态
  • top entities —— 数量最多的前 10 种实体类型
  • inspect chunks —— 每个维度的已加载 / 强制加载 / 玩家数量
  • tuning —— 当前的 AutoTuner 阈值偏移量
  • prune —— 识别不可达的已加载区块(洪泛填充)
  • storage —— 世界目录大小与主机 4 GB 上限的对比
  • pregen <radius> —— 在你周围预生成区块
  • quarantine —— 最近被隔离的实体 / 方块实体

语言

输出内容已翻译成 9 种语言:英语、日本語、Deutsch、Português (BR)、Español、简体中文、한국어、Français、Русский。日本客户端无论服务器在哪个区域,都会看到日语。

翻译为机器生成的初始版本。非常欢迎母语者提供修正 —— 请在 GitHub 上提交 PR 或 issue。

它不会做什么

  • 网络延迟问题 —— 属于地理因素,任何模组都无法解决
  • 使用假玩家绕过主机的空闲关闭计时器 —— 这正是许多免费主机封禁的行为(如 Carpet 模组)。Free Server Saver 在主机规则内运行

要求

  • Minecraft 1.21.1
  • NeoForge
  • JDK 21

(1.21.2+ 移植待定 —— 原版的随机刻逻辑在 1.21.2 中有所更改,我们需要先进行验证。)

配套模组(强烈推荐)

为了获得完整的低内存配置,请一并安装:

  • Lithium —— 引擎范围内分配开销较低的优化
  • FerriteCore —— 减少 40-50% 的方块状态内存占用
  • ModernFix —— 加快模组加载速度;有助于应对免费主机的 10 分钟启动限制

Free Server Saver 有意不越界。它们处理静态优化,我们处理自适应响应。

许可证与声明

保留所有权利(可自由放入任何整合包,无需许可或注明出处)。完整声明请参阅 GitHub 仓库中的 NOTICE.md。

非官方社区模组。与任何托管服务商无关。