动态性能

动态性能

一个保持原版风格且轻量的性能模组,会根据服务器负载动态调整视距、模拟距离和生物上限。

优化

Dynamic Performance

一个保留原版特性且轻量级的性能模组,会根据服务器负载****动态调整视距、模拟距离和生物上限。

非常适合那些即使在较弱硬件上也想尽可能保持最佳游戏体验的服务器所有者。

为什么要使用这个模组?

  1. 动态缩放: 通过检查服务器的 MSPT(每刻毫秒数),它会动态缩放到理想设置,确保服务器尽可能顺畅运行。
  2. 可扩展配置: 缩放方式以及检查间隔都可以根据你的硬件能力完全配置。
  3. 灵活且兼容: 此模组可在单人游戏和多人游戏中使用,支持 Fabric 和 NeoForge,并且与所有其他性能模组兼容。
  4. 易于理解: 通过使用提供的命令来检查当前服务器状态、查看当前生效的配置并重新加载配置更改,可以轻松理解当前发生的情况。

工作原理

Dynamic Performance 通过大约每 15 秒检查一次当前 MSPT 来进行监控。更多信息请参阅配置部分。

附加信息:健康的服务器目标为 20 TPS(每秒刻数),因此最高为 50 MSPT。所以,延迟阈值应大致围绕这个值。

此外,如果 MSPT 超过延迟阈值,服务器会按照性能等级中的配置开始降级,直到不再超过阈值。恢复也是同理:如果 MSPT 低于恢复阈值,服务器会根据上述等级开始升级,此时顺序相反。

如果 MSPT 保持在延迟阈值和恢复阈值之间,则不会进行缩放更改。此时服务器被视为稳定。更多详情请参阅性能状态部分。

安装

将模组添加到你的世界或服务器后,你应该能够打开关于面板,它完全可以通过鼠标操作:

/dp about

或

/dynamicperformance about

about_panel

状态

当前性能状态、MSPT、视距、模拟距离和生物上限百分比可以通过以下命令检查:

/dp status

或

/dynamicperformance status

status_panel

性能状态

会报告以下性能状态:

  • Optimal:所有配置等级均已恢复。
  • Stable:MSPT 处于恢复阈值和延迟阈值之间。
  • Scaling Down:MSPT 较高,并且设置仍可继续降低。
  • Lagging:MSPT 较高,但所有配置等级都已经处于最低值。
  • Scaling Up:设置正在恢复。

配置

配置文件会创建在:

./config/dynamic-performance.json

默认内容:

{
  "interval": 15,
  "lag_threshold": 45.0,
  "recovery_threshold": 30.0,
  "levels": [
    {
      "type": "SIMULATION_DISTANCE",
      "max": 16,
      "min": 8,
      "increment": 1
    },
    {
      "type": "MOB_CAP_PERCENTAGE",
      "max": 100,
      "min": 75,
      "increment": 5
    },
    {
      "type": "SIMULATION_DISTANCE",
      "max": 8,
      "min": 5,
      "increment": 1
    },
    {
      "type": "MOB_CAP_PERCENTAGE",
      "max": 75,
      "min": 30,
      "increment": 15
    },
    {
      "type": "VIEW_DISTANCE",
      "max": 20,
      "min": 4,
      "increment": 2
    }
  ]
}

此配置将最明显的变化,即视距,保留为最后的回退项,同时通过模拟距离和生物生成更早地降低服务器端负载。

选项

  • interval:服务器性能检查和调整的频率,单位为秒。
  • lag_threshold:开始降级时的 MSPT 值。
  • recovery_threshold:开始恢复升级时的 MSPT 值(小于或等于该值时)。
  • levels:按顺序排列的视距、模拟距离和生物上限百分比缩放规则。

等级类型

支持的等级类型:

  • VIEW_DISTANCE:调整服务器视距。
  • SIMULATION_DISTANCE:调整服务器模拟距离。
  • MOB_CAP_PERCENTAGE:将生物上限调整为原版生物上限的百分比。

每个等级具有:

  • max:此模组可将该设置恢复到的最高值。
  • min:此模组可将该设置降低到的最低值。
  • increment:缩放时使用的步长。

顺序很重要。降级会按照列表从上到下进行,而恢复升级则按照从下到上进行。

当前生效配置

可以通过以下命令在游戏内查看当前生效的配置:

/dp config

或

/dynamicperformance config

config_panel

截图中显示的是上面列出的默认配置。

重新加载

编辑配置文件后,无需重启即可通过运行以下命令应用更改:

/dp reload

或

/dynamicperformance reload

如果配置无效,命令会报告错误,并继续保留之前有效的配置处于生效状态。

贡献与问题

我非常欢迎:

  • Bug 报告
  • 功能请求
  • 拉取请求

请在 GitHub 上提交 issue 或 PR。

许可证

本项目采用 LGPLv3 License 授权。详情请参阅 LICENSE。