跳转到内容

腐蚀 Rust 服务器优化:卡顿原因与解决办法

简短回答: 在服务器控制台里输入 serverinfo,查看服务器的 Framerate 和 EntityCount。Rust 服务器要运行的东西越多就越慢:世界里更多的建筑和物品、更大地图上更多的刷新、NPC 和插件。下面的设置分别控制这些。tick 速率设置请保持默认。

命令它显示什么
serverinfoFramerate、EntityCount(世界里的一切)、Players、Memory、NetworkIn 和 NetworkOut、Uptime。
server.fps单独显示服务器的帧率。

在服务器控制台里、通过 RCON,或以管理员身份在 F1 控制台里输入它们。在 Crucible Local Server 里,服务器 上线 时快速视图的 帧率 图块显示的是同一个数字。

卡顿发生时就盯着帧率。如果它下降,说明服务器在为它自己的工作挣扎,这一页的其余内容就适用。如果它保持稳定,就去看网络或者玩家自己的电脑。

fps.limit 是服务器每秒最多运行的帧数(Rust 报告 240)。调低它可以给同一台电脑上的其他东西腾出 CPU,比如第二个服务器。对已经低于上限运行的服务器,它没有任何作用。

设置默认值它做什么
server.tickrate10服务器每秒处理多少次 RCON、Rust+ 和连接检查。它不会让游戏运行得更流畅。
player.tickrate_sv16服务器每秒更新每个玩家多少次。Rust 允许 16 到 128,每往上一档,在线的每个玩家都要多做一份工作。

每个建筑块、可部署物、掉落的物品、尸体、动物和木桶都是一个实体,服务器要跟踪并保存每一个。一次 wipe 期间,随着玩家建造,这个数字不断上升。

设置或命令默认值它做什么
server.itemdespawn300掉落的物品在地上躺多少秒后消失的基础值。有些物品会待得更久。
server.corpsedespawn300尸体保留多少秒。
entity.countby <steamid>统计某个玩家放置的一切。
entity.deleteby <steamid>销毁某个玩家放置的一切。无法撤销。

腐朽会磨损没人维护的建筑,它也是把被遗弃的基地从地图上清走的机制。设为 decay.scale 0 时什么都不会腐朽,所以每个基地都留到 wipe,实体数量只增不减。长时间的 wipe 周期里请保持开启腐朽;设置见关闭腐朽。

Rust 按面积用矿点、植物、可拾取物和动物填满地图:每种刷新类型都有一个密度,Rust 会在它适合的陆地上朝这个密度去刷。更大的地图容纳更多的一切,服务器要运行的也更多。Rust 把某些刷新类型限制在 4000 m 地图的面积之内。怎么选大小:Rust 地图大小。

设置默认值它做什么
spawn.max_density1缩放地图里每种刷新类型的数量。0.5 就是一半。
spawn.min_density0.5随玩家数变化的刷新类型,在空服务器上从这里开始,随着服务器人数增加升到 spawn.max_density。
spawn.tick_populations60刷新轮次之间相隔的秒数。数字越大,地图补充得越慢。
设置它做什么
ai.npc_enable false遗迹和垃圾堆处不再刷出科学家,Rust 也不再生成遗迹导航网格,所以服务器启动得更早。动物仍然会刷出。
aimanager.nav_disable trueRust 完全不生成导航网格,所以服务器启动快得多,但 NPC 和动物无法移动。仅用于建造或测试服务器。

两者都要写进 server.cfg 或启动行,这样从服务器启动的那一刻起就生效。见 Rust server.cfg 示例。

每个插件都在服务器上运行它自己的代码,一个慢的插件就能拖低所有人的帧率。Oxide 上的 o.plugins 或 Carbon 上的 c.plugins 会列出已加载的内容。想找出慢的那个,就一次一个地把插件移出 oxide/plugins 或 carbon/plugins 文件夹,重启,再观察帧率。在 Crucible Local Server 里,插件在 模组 标签页里管理;见模组与插件。

server.saveinterval(600)是世界保存的间隔秒数,每次保存都会写入世界里的每个实体。实体更多的世界保存时间更长,所以别把它设得很低。

计划重启会让长时间运行的服务器重新干净地启动。Crucible Local Server 可以按每日计划重启,并在服务器停机期间安装 Rust 更新;见自动重启你的服务器。

配置 标签页里的 性能 设置:

  • 跳过 AI 导航网格(启动更快) 就是上面的 aimanager.nav_disable:启动快得多,NPC 和动物不会移动。
  • 高优先级 在其他应用运行时给服务器更多 CPU。
  • CPU 核心数(高级) 把服务器绑定到你列出的核心,例如 0-7。留空就使用所有核心。

你同时运行的每个额外服务器都要占用实实在在的内存和 CPU,这就是 允许同时运行多个服务器 默认关闭的原因。见服务器设置。