赫莫德

创作者: GBV
已更新:2026-09-22 22:45:42
405KB

关于此 MOD

将专用服务器约三分之二的传出流量压缩掉,使ZDO发送预算可调,并测量服务器时间实际花在了哪里。压缩功能需要每个玩家也安装该模组。

赫尔莫德

Valheim专用服务器的性能和网络优化。不改变任何游戏玩法。

赫尔莫德将服务器的出站流量削减了约三分之二,解除了游戏原本固定不动的两项限制,并记录服务器时间实际花在了哪里,以便在出现卡顿时能够诊断原因,而不是靠猜测。

作用

压缩网络流量。 在真实服务器上,8.6 MB 的出站流量变成了 3.0 MB,而帧时间和 CPU 均无变化。这部分需要每位玩家都安装该模组;没有安装的玩家只会交换普通数据包。

提高每位玩家的世界数据上限。 游戏向玩家发送的世界更新数据在传输量达到固定上限后便会暂停,这对距离服务器最远的玩家影响最大。该上限是可以调整的。

限制建造新地形所花费的时间。 生成带有墓穴或村庄的区域是服务器最耗资源的操作,当玩家朝不同方向探索时,多个区域可能在同一刻生成。预算机制会将它们分散开来。

改善 Steam 连接设置。 游戏将发送速率固定在某个值,并且从不关闭Nagle批处理。Hermod提高了上限并关闭了批处理,而且只朝着有利的方向调整。

记录服务器正在执行的操作。 每分钟往电子表格里写一行:帧时间、内存、对象数量、每名玩家的带宽与更新频率、压缩、地形生成和存档。其中大部分不需要挂钩进游戏,因此瓦尔海姆更新后它仍能继续工作。

监视过期的玩家记录。 当服务器仍认为一个玩家能看到另一个已超出范围的玩家时,它会这样记录并计入。这属于内部记账,而非屏幕上的任何表现,因为每个客户端都会自行丢弃该对象。它只是进行监视;传送门或玩家的行为都不会有任何不同。

不限制帧率。 一个英灵神殿服务器每帧只向一名玩家发送更新,所以限制帧率会让所有人的体验都更糟。赫莫德不予理会,拒绝将更新速度限制到每秒十次以下。

安装中

把它装在服务器上。如果你想启用压缩,也装在玩家端,因为压缩是唯一需要两端都装的部分。

这些命令需要在输入它们的客户端上执行,因为英灵神殿专用服务器本身没有控制台。命令会发送到服务器,并首先检查管理员权限。

跨平台服务器可以获取测量数据,但不具备网络连接功能。 压缩和Steam设置都需要Steam连接,而跨平台服务器从不建立这种连接。Hermod会在启动时于日志中说明它打开了哪种连接。

它所写的内容

三个文件已载入 BepInEx/配置/,并每隔几分钟向日志添加一段简短摘要。

文件 内容
瓦尔海姆·赫莫德·会话.csv 每分钟记录一行:帧时间、CPU、内存、对象数量、发送速率、压缩、地形生成、存档
赫尔摩德同伴CSV 每位玩家每分钟一行:延迟、链路质量、带宽、队列深度、更新率
赫尔莫德报告 记录了最差帧率和最慢区域的会话数据

四列内容可回答大部分问题: ms_p99 这是一个糟糕画面该有的样子, 帧数大于100 是服务器实际卡顿的频率, 摊位毫秒 是这一分钟里有多少时间用于垃圾回收,以及 缓慢未解释 是赫尔莫德完全无法解释的缓慢帧。

百分位列是分桶边界,因此 ms_p99 = 16.7 意味着99%的帧都在16.7毫秒或以下。 最大值 列完全匹配。

每一列都有说明,详见 wiki/阅读-会话日志.md.

命令

从管理员的客户端输入。

命令 它的作用
赫莫德状态 帧时间、CPU、对象数量、压缩和当前发送速率
赫尔莫德同伴 每位玩家:延迟、队列深度、更新频率
赫尔莫德印记 <label> 在日志中标记一个带标签的边界,用于比较前后变化
赫尔莫德档案 <vanilla|tier1|relay> 一次性实时翻转整套设置
hermod_compress <开|关|状态> 数据包压缩。对所有已连接玩家立即生效
赫尔莫德队列 <bytes|off|status> 飞行中的世界数据每位玩家的上限
赫尔莫德中继 <开|关|状态> 设置中描述的更新改写
赫尔莫德网络 [应用] 显示当前生效的 Steam 设置; 应用 在活动连接上重新声明它们
赫尔莫德帧率 <n|auto|off> 限制帧率,并拒绝上述情况
hermod_probe <开|关> 详细计时,其余测量继续运行
赫耳摩德报告 现在写报告
赫尔莫德重装 重新读取设置文件
赫耳墨德_存档 将当前生效的设置写回文件
赫尔莫德恐慌 立刻把一切都恢复成游戏原本的样子。

设置

BepInEx/config/gbv.valheim.hermod.json. 已启用 且 仅测量 在BepInEx配置中,因此无需编辑JSON即可关闭模组。

设置 默认 它的作用
压缩已启用 开启 数据包压缩。联机双方都需要安装此模组
压缩级别 1 1到9。更高设置以数倍CPU占用换取几个百分点的提升
飞行升限 0 玩家在世界数据飞行中的单人上限。0会保持游戏自身的
区域生成预算毫秒 50 每个tick中可用于构建地形的时间(毫秒)。0表示无限制
应用Steam设置 开 连接设置总开关
纳格时间微秒 0 Steam的批处理延迟。0 表示禁用,-1 表示保持原样
最小发送速率 153600 留在游戏自身的价值上
最大发送速率 1048576 天花板允许蒸汽达到的上限
发送缓冲区大小 0 保留 Steam 的默认设置不变
每秒最大总上传KiB 0 你的上传预算,已分配到各玩家槽位
目标帧率 0 0 自动, -1 不设上限,或输入一个数字。自动表示不设上限
中继已启用 关 按计时器向每位玩家发送更新,而不是每帧发送一次。当玩家存在实际延迟时最有帮助;在保持开启前请先测试。
中继目标频率 20 中继每秒尝试通过的次数
中继帧率上限 60 当接力运行时,上限会自动选择
中继中止帧毫秒 250 延迟帧时间必须差到什么程度,中继才会自行关闭
修复Zdo额外数据泄漏 关闭 修复了游戏本身的内存泄漏问题。注意 额外数据比率 在日志中关闭后再开启
探测已启用 开启 详细时间安排
举报分钟数 5 报告和日志摘要的写入频率
慢帧毫秒 100 比这更差的帧都会记录在报告中
慢速区生成毫秒 50 比这里更慢的区域会被保留,并带有其坐标
写入CSV 开 写两个电子表格
写入JSON 开启 撰写报告
最大CSV字节数 8388608 将电子表格旋转超过此尺寸
遵循其他网络模组 开启 如果安装了其他网络模组,请关闭本模组
更好的网络指南 DIT.BetterNetworking10 要让哪个模组退出

无法解析的设置文件会保持原有设置不变,而不会将其读取为空。

与其他模组同时运行

只运行一个网络模组,不要运行两个。如果Hermod发现另一个模组,它会停止压缩、发送速率、批处理延迟和中继功能,并在日志中说明,然后继续测量。两个模组同时改写相同的封包会导致流量损坏,而不是干净地失败,这就是为什么这是自动的。

如果英灵神殿的更新移动了赫尔莫德所依赖的某些内容,它会在日志中指明该内容,并继续处理其他所有事项。阅读日志以 赫尔莫德: 更新后值得做一次。

制作人员

专为……打造 维京兄弟.

数据包压缩改编自 杰西的强化网络,经由 拉博迪大卫的 Valheim 1.0分支,遵循MIT许可证,包含基于真实Valheim流量训练的压缩字典。完整声明见 第三方声明.md,授权于 许可证-BetterNetworking.txt.

Zstandard 来自 ZstdSharp.Port 作者:奥列格·斯捷潘尼谢夫。

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!