- 本文翻译自服务器优化指南,有删改。
- 参考:https://www.mcbbs.net/thread-774469-1-1.html
Spigot 和 Paper 提供的配置文件经过合理的设置可大大提高服务器运行的性能。本指南将引导您在不影响游戏性的情况下充分利用服务器设置上的一些建议的数值。
更新说明
- 支持到最新的 1.14.4 和 1.15.2
- 最后更新时间: 2019年12月13日
- 更新日志
- 地图的预生成对于减少卡顿是至关重要的。在您着手修改您服务器配置文件之前我们最好先关注一下这个问题。
1.找到插件的
WorldBorder
。2.设定合理的边界范围。
3.在服务端中输入指令:
/wb fill
。4.坐等加载完成。根据地图的大小,您可能要等好几个小时。如果可以的话,您最好在您激活地图之前执行这个操作,否则可能会导致卡顿或延迟。
5.这样玩家在你设定边界内的区域玩耍就不会因为加载区块而卡顿了。
spawn-limits
默认值:monsters: 70, animals: 10, water-animals: 15, ambient: 15
推荐值:monsters: 50, animals: 8, water-animals: 3, ambient: 1
性能影响程度:中等
注释: 设置怪物和动物的时候要谨慎,如果太低的话可能会影响玩家的游戏体验,下方的设置将会减少对游戏体验的影响。
注意 #1: Ambient=蝙蝠, 没有任何作用。
注意 #2: 如果服务器少于15人应该跳过此项目的设置甚至增加这些数值。
chunk-gc.period-in-ticks
默认值:600
推荐值:400
性能影响程度:中等
注释:这样可以更快地卸载闲置的区块,这意味着您服务器的TPS消耗将会减少。
ticks-per.monster-spawns
默认值:1
推荐值:4
性能影响程度:中等
注释:这项设置决定了服务器尝试生成怪物的频率(以 tick 为单位),稍微增加生成时间并不应该影响生成率。
注意: 空岛服务器常因为找不到产怪区域而造成延迟。
autosave
默认值:6000(通常地)
推荐值:6000
性能影响程度:N/A
注释:这使得Bukkit可以节省世界资源,并且可以运行多长时间(以 tick 为单位)。默认应该是6000,但我们最好确认一下它没有被禁用(值为一个正数)。
注意 #1: 如果您在Multicraft的高级设置菜单中使用自动保存或者使用插件进行保存,请立即停止这种效率非常低的行为,它们只是在执行
/save all
。注意 #2:如果您保存的时候延迟达到了一个峰值,那么我们推荐您使用
Paper
核心的无延迟保存。
save-user-cache-on-stop-only
默认值:false
推荐值:true
性能影响程度:中等
注释:开启后将会在服务器关闭后储存新玩家缓存数据,关闭后将会持续保存新玩家缓存数据。
注意: 类似于生存服的服务器中将会更加安全,如果你的服务器每天进行备份,应该没问题。
max-tick-time
默认值:tile: 50, entity: 50
推荐值:tile: 1000, entity: 1000
性能影响程度:N/A
注释: 在服务器跳到下一个任务之前,实体操作会消耗计算的时间(以毫秒为单位)。这样设置可以禁用这个不稳定的特性,虽然设置较低可以优化服务器性能,但它也会导致一些不值得处理的错误。
注意: 如果您想知道更多关于为什么您应该禁用这个,请阅读 这里 。 请记住,这是一个熟练的开发人员的个人意见,而不是
Spigot
或是我自己(指本优化指南的作者)。
mob-spawn-range
默认值:8
推荐值:6
性能影响程度:N/A
注释:这里会设定玩家周围的最大刷怪距离(以区块为单位)。我们在
bukkit.yml
中限制了怪物的数量之后,这会将玩家周围的怪物凝聚起来,使其看起来的刷怪机制像是正常的。如果您在bukkit.yml
文件中降低了刷怪限制,只能降低这个值。注意: 虽然此处数值较低会降低黑暗处的刷怪率,但应该并不明显。
警告:如果您的视距小于等于6,就请设置一个比该值低1的生成范围。例如视距为5的话,则可将
mob-spawn-range
设置为4。
entity-activation-range
默认值:animals: 32, monsters: 32, raiders: 48, misc: 16
推荐值:animals: 16, monsters: 24, raiders: 48, misc: 8
性能影响程度:中等
注释:这个设置将会影响到实体的激活范围,因为这些范围以外的实体经常不会被激活。请记住,较低的设置可能会出现“懒惰”的怪物。
注意:
misc
包括掉到地面上的悬浮物和经验球;设置为 2 是比较安全的,设置为 1 可能会出现一些问题。
tick-inactive-villagers
默认值:true
推荐值:false
性能影响程度:中等
注释:启用此选项可防止服务器在激活范围外激活村民。在1.14+中村民要做的事情很多很占资源。
注意:原版行为将激活所有在已加载区块中的村民。
merge-radius
默认值:item: 2.5, exp: 3.0
推荐值:item: 4.0, exp: 6.0
性能影响程度:中等
注释:将地面物品合并起来可以大大的减少对CPU的消耗。设置更高将意味着更多的物品成堆显示,甚至可以让你不必使用像
clearlag
这样的插件。注意: 合并物品可能会导致物品偶尔消失,极少数情况下可能会迫使物品穿过墙或者岩浆合并。
nerf-spawner-mobs
默认值:false
推荐值:true
性能影响程度:中等
注释:启用后,从刷怪笼里出来的怪物将不会进行游泳、跳跃、攻击、移动等操作,虽然在RPG服务器中影响可能较大,但它也会显著地提高性能,怪物合并插件会是一个很好的解决方案。
注意:
Paper
增加了一个选项,可以将没有激活的从刷怪笼里出现的怪物让其不间断的跳跃/游泳(参考:spawner-nerfed-mobs-should-jump
),这样可以在不影响服务器性能的情况下让你的农场运作。
item-despawn-rate
默认值:6000(5分钟)
推荐值:更少?
性能影响程度:看情况
注释:设置地面实体被删除的时间(以毫秒为单位)。虽然可以显著的降低对性能的影响,但是在例如生存的服务器中对游戏的影响度也是蛮高的,请自行斟酌。
注意:请参阅
Paper
的alt-item-despawn-rate
这样您就可以在不清楚贵重物品(如钻石)的情况下除掉垃圾物品(如圆石)了。
arrow-despawn-rate
默认值:1200
推荐值:
性能影响程度:较小
注释:设置箭头射出后的消失时间(以毫秒为单位),虽然有些服务器有足够的理由让箭存在更长时间,但是大多数服务器会修改此项,从而减少CPU。
注意:
Paper
中有设置项可以减少箭头消失的时间。如果您使用Paper
的despawn
设置,请将arrow-despawn-rate
保留为接近默认值。
- 注:在作者更新的内容里,在旧版内曾出现的
view-distance
移动到了Server.properties
板块中。
注意:
Paper
具有异步区块加载/保存功能,如果您有区块或世界保存方面的延迟,或许您应该考虑使用Paper
。警告:
Paper
是一个非官方的服务端核心,而且在Spigot论坛是不被支持的,虽然被认为不如Spigot
稳定,但是它却提供了大量的优化性能的选项。如果你遇到Paper
相关的问题,应该在Paper
的问题追踪器上报告,而不是在Spigot
论坛。
max-auto-save-chunks-per-tick
默认值:24
推荐值:6
性能影响程度:严重
注释:这将会减慢进行世界保存时增加的区块的保存速度。对于1.13+的服务器来说,这一点非常重要,因为区块的保存效率非常的低。
注意:请确保您的保存过程可以在您自动保存的间隔之间进行并完成。该项如果设置得过低有可能会导致区块没有被成功保存。如果您有40个玩家在线,那么您应该试着将该项设置为8以确保服务器的安全运行。
optimize-explosions
默认值:false
推荐值:true
性能影响程度:较小
注释:在每次爆炸后立即清除已经死亡的或无意义的实体。
Paper
有一套非常高效的算法让爆炸对游戏性不产生影响。
mob-spawner-tick-rate
默认值:1
推荐值:2
性能影响程度:较小
注释:该项用于设置刷怪蛋每次被使用的延迟(以 tick 为单位),延迟加倍不会影响生成率。在 TPS 较低时,刷怪蛋使用间隔会变大。
disable-chest-cat-detection
默认值:false
推荐值:true
性能影响程度:较小
注释:默认情况下,当打开箱子的时候会扫描豹猫,虽然这消除了Minecraft的游戏机制,但是这样毫无意义功能的存在并不重要。
container-update-tick-rate
默认值:1
推荐值:3
性能影响程度:较小
注释:此设置会更改打开容器时,容器内容的刷新频率,2-3对服务器没有影响,而且会省下一些CPU资源,请设置在5以下避免库存故障。
max-entity-collisions
(存在于某些版本的Spigot.yml
中)
默认值:8
推荐值:2
性能影响程度:中等
注释:拥挤的实体(研磨机、农场等)在这个过程中碰撞更少,消耗更少的TPS。
grass-spread-tick-rate
默认值:1
推荐值:4
性能影响程度:中等
注释:这个选项关系到草方块的扩散,对CPU会有一点的优化。
注意:空岛服务器应该把这里设置为1。
despawn-ranges
默认值:soft: 32, hard: 128
推荐值:soft: 28, hard: 96
性能影响程度:较小
注释:使用较低的数值,可以更快的清除无用的怪物,并允许在玩家流量多的区域产生更多的怪物。
注意 #1:这可能会使怪物神秘地消失。
注意 #2:
soft=定期移除的怪物与玩家的距离。
Hard=立即移除怪物的距离。
hopper.disable-move-event
默认值:false
推荐值:true
性能影响程度:严重
注释:漏斗机制优化,会防止 container 中的每一个槽都调用
InventoryMoveItemEvent
,这将大大地降低漏斗带来的延迟。警告: 作者认为这并不稳定
non-player-arrow-despawn-rate
默认值:-1(使用
Spigot.yml
的arrow-despawn-rate
)推荐值:60(3秒)
性能影响程度:较小
注释:与
Spigot.yml
的arrow-despawn-rate
基本相同。
creative-arrow-despawn-rate
默认值:-1(
Spigot
的arrow-despawn-rate
)推荐值:60(3秒)
性能影响程度:较小
注释:同
non-player-arrow-despawn-rate
,但针对的是玩家的无限弓
。
prevent-moving-into-unloaded-chunks
默认值:false
推荐值:true
性能影响程度:中等
注释:防止玩家进入一个未加载的区块(由于延迟),这会导致更多的延迟。设置为
true
将把它们扔回一个安全的位置。如果你没有预生成你的世界,此设置至关重要。
use-faster-eigencraft-redstone
默认值:false
推荐值:true
性能影响程度:严重
注释:此设置在不破坏常规设备的情况下,将冗余的红石更新减少95%。经验测试显示,加速高达10倍!
注意:如果使用插件来更改红石算法,请考虑使用此选项替换它们,因为插件可能会破坏红石行为。
armor-stands-tick
默认值:true
推荐值:false
性能影响程度:较小
注释:一些物品会与世界进行交互,被放置下来时通常被视为实体。设置后被放置的盔甲架不会被水推动。
注意:Paper 已经对服务端进行了足够的优化,这无需再进行调整,您只要尽情享受游戏就好。
per-player-mob-spawns
默认值:false
推荐值:true
性能影响程度:较小
注释:该项替代了
Bukkit
的随机算法,实现了单独玩家周围的生成生物行为。可以防止大型农场等行为影响服务器生成生物的生成率。如果您降低了
Bukkit
的生成限制并且发现生物生成的有点少,那就要考虑根据需要尽可能寻找性能与游戏体验之间的平衡。
alt-item-despawn-rate
默认值:false
推荐值:true
性能影响程度:中等
注释:让某些物品移除得比
Spigot
的item-despawn-rate
中设置的物品更快(或更慢),这样可以避免将资源专用于处理大量垃圾。
- 一个在15秒内拆除 cobblestone 和 netherrack 的例子:
enabled: true items: COBBLESTONE: 300 NETHERRACK: 300
注意:当您向其中添加内容时,请注意该物品是否存在。
anti-xray.enabled
默认值:false
推荐值:true
性能影响程度:N/A
注释:虽然这个设置会消耗您很多的CPU,但是这将会是最有效的反矿追系统,您不会找到更有效更干净的反矿追系统,更好的是,您不需要插件!
注意:
Spigot
核心和老版本Paper
应该考虑关闭此项使用插件。
- 注:在作者更新的内容里,译者并未发现在旧版内曾出现的
fire-physics-event-for-redstone
。
view-distance
默认值:10
推荐值:4-8
性能影响程度:严重
注释:这是所有文件中影响性能最大的选项,但是对于游戏的影响也很大,这限制了玩家的区块渲染距离,大多数服务器应该设置为5-6,但是一些低规格,玩家数量多的玩家应该设置为4-5.
注意:如果您现在设置的视距低于7,请您最好参阅
Spigot.yml
中的mob-spawn-range
。
network-compression-threshold
默认值:256
推荐值:独立服:512,BungeeCord:-1(我们将在下一节讲到关于 BungeeCord 的内容)
性能影响程度:较小
注释:此选项在服务器尝试压缩数据包之前限制其大小。将其设置得更高可以节省一些资源,但会牺牲带宽,将其设置为-1将禁用它。
注意:如果您的服务器在一个拥有代理网络的主机上或者在同一个数据中心上(<2 ms ping),禁用它是十分有益的。
-
在性能方面,插件应该是最靠后的选择。我们应不惜一切代价避免
anti-lag
和mob stacker
插件。较好的解决办法是利用可以直接优化 tasks 的插件或者在不影响游戏性的情况下限制资源占用。 -
1.14+ 的解决方案:
Entity Lag(免费)(只推荐用于减少实体的延迟卡顿情况)
- 关于农场等刷怪场所:
- TPS全称为
Ticks Per Second
,是影响服务器流畅度的主要因素,不会因为玩家的地理位置而影响。 - Minecraft服务器运算基于每秒20个 tick ,这就是一个完美的服务器的TPS为20.0的原因,每个 tick 服务器都会计算一些东西,TPS低于20的服务器表明服务器无法跟上一定的任务,那么只能保证重要任务的的进行,被迫跳过一些任务,这个跳过任务的过程就被称为 服务器延迟滞后,如果服务器延迟平均在19.95-20之间,那么你不用担心服务器延迟问题。
20.0 = 完美无瑕 - 漂亮。
19.95-19.99 = 很棒 - 不明显的TPS损失。 大多数服务器的TPS都维持在这个范围内。
18.5-19.94 = 一般 - 也许是一些轻微的问题,但没有任何游戏影响。
16.0-18.4 = 差 - 需要认真修复。
<16.0 = 这游戏没法玩了(恼)。
- Ping 反映了属于在服务器与客户机之间数据传输所需时间(以毫秒为单位)。客户机与服务器主机地理位置越远,传输所需时间越长。宽带问题也可能影响 ping 速度,但这并不常见,这也会导致客户机与服务器的连接速度过慢。
1-60 =太棒了!
51-120 = 好 - 可能在PvP中略有劣势。
121-180 = 差 - 与块/玩家/实体交互时经常滞后。
180+ = 糟糕 - 你还网上冲浪啊?
- 不要把 TPS 和 FPS 搞混,FPS 反映了客户端处理画面等情况,FPS 100% 指客户端,与服务器没有任何关系!
- 服务器可以做的就是削减服务器的功能来提高FPS,这样渣机就可以跟上,即使是这样也不会产生太大影响,推荐一个名为 Optifine 的流行免费MOD。
- Optifine 的MCBBS搬运地址: http://www.mcbbs.net/thread-606019-1-1.html
60+ = 完美 - 超过60 FPS的任何东西对于MineCraft而言都是过度的。 考虑将FPS限制在100以下,以避免对您的机器造成不必要的压力。
40-59 = 好 - 偶尔渲染故障。
21-39 = 差 - 应该进行处理。
11-20 = 烂 - 放过你的电脑吧,它比你年龄还大了!
1-10 = 恼 - 好好学习,天天向上!