腐蚀 Rust 服务器优化:卡顿原因与解决办法
简短回答: 在服务器控制台里输入 serverinfo,查看服务器的 Framerate 和 EntityCount。Rust 服务器要运行的东西越多就越慢:世界里更多的建筑和物品、更大地图上更多的刷新、NPC 和插件。下面的设置分别控制这些。tick 速率设置请保持默认。
看看服务器状态怎么样
Section titled “看看服务器状态怎么样”| 命令 | 它显示什么 |
|---|---|
serverinfo | Framerate、EntityCount(世界里的一切)、Players、Memory、NetworkIn 和 NetworkOut、Uptime。 |
server.fps | 单独显示服务器的帧率。 |
在服务器控制台里、通过 RCON,或以管理员身份在 F1 控制台里输入它们。在 Crucible Local Server 里,服务器 上线 时快速视图的 帧率 图块显示的是同一个数字。
卡顿发生时就盯着帧率。如果它下降,说明服务器在为它自己的工作挣扎,这一页的其余内容就适用。如果它保持稳定,就去看网络或者玩家自己的电脑。
fps.limit 是服务器每秒最多运行的帧数(Rust 报告 240)。调低它可以给同一台电脑上的其他东西腾出 CPU,比如第二个服务器。对已经低于上限运行的服务器,它没有任何作用。
Tick 速率:别动它们
Section titled “Tick 速率:别动它们”| 设置 | 默认值 | 它做什么 |
|---|---|---|
server.tickrate | 10 | 服务器每秒处理多少次 RCON、Rust+ 和连接检查。它不会让游戏运行得更流畅。 |
player.tickrate_sv | 16 | 服务器每秒更新每个玩家多少次。Rust 允许 16 到 128,每往上一档,在线的每个玩家都要多做一份工作。 |
每个建筑块、可部署物、掉落的物品、尸体、动物和木桶都是一个实体,服务器要跟踪并保存每一个。一次 wipe 期间,随着玩家建造,这个数字不断上升。
| 设置或命令 | 默认值 | 它做什么 |
|---|---|---|
server.itemdespawn | 300 | 掉落的物品在地上躺多少秒后消失的基础值。有些物品会待得更久。 |
server.corpsedespawn | 300 | 尸体保留多少秒。 |
entity.countby <steamid> | 统计某个玩家放置的一切。 | |
entity.deleteby <steamid> | 销毁某个玩家放置的一切。无法撤销。 |
腐朽会磨损没人维护的建筑,它也是把被遗弃的基地从地图上清走的机制。设为 decay.scale 0 时什么都不会腐朽,所以每个基地都留到 wipe,实体数量只增不减。长时间的 wipe 周期里请保持开启腐朽;设置见关闭腐朽。
地图大小与刷新
Section titled “地图大小与刷新”Rust 按面积用矿点、植物、可拾取物和动物填满地图:每种刷新类型都有一个密度,Rust 会在它适合的陆地上朝这个密度去刷。更大的地图容纳更多的一切,服务器要运行的也更多。Rust 把某些刷新类型限制在 4000 m 地图的面积之内。怎么选大小:Rust 地图大小。
| 设置 | 默认值 | 它做什么 |
|---|---|---|
spawn.max_density | 1 | 缩放地图里每种刷新类型的数量。0.5 就是一半。 |
spawn.min_density | 0.5 | 随玩家数变化的刷新类型,在空服务器上从这里开始,随着服务器人数增加升到 spawn.max_density。 |
spawn.tick_populations | 60 | 刷新轮次之间相隔的秒数。数字越大,地图补充得越慢。 |
| 设置 | 它做什么 |
|---|---|
ai.npc_enable false | 遗迹和垃圾堆处不再刷出科学家,Rust 也不再生成遗迹导航网格,所以服务器启动得更早。动物仍然会刷出。 |
aimanager.nav_disable true | Rust 完全不生成导航网格,所以服务器启动快得多,但 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 更新;见自动重启你的服务器。
在 Crucible Local Server 里
Section titled “在 Crucible Local Server 里”配置 标签页里的 性能 设置:
- 跳过 AI 导航网格(启动更快) 就是上面的
aimanager.nav_disable:启动快得多,NPC 和动物不会移动。 - 高优先级 在其他应用运行时给服务器更多 CPU。
- CPU 核心数(高级) 把服务器绑定到你列出的核心,例如
0-7。留空就使用所有核心。
你同时运行的每个额外服务器都要占用实实在在的内存和 CPU,这就是 允许同时运行多个服务器 默认关闭的原因。见服务器设置。
- Rust 服务器变量:这一页上每个设置及其默认值
- Rust 管理员命令
- 如何修改最大玩家数
- 如何托管自定义 Rust 地图
