PaperMC优化有哪些隐藏技巧?

话题来源: 便宜 VPS 也能跑 Minecraft?实测1C1G性能极限

说到PaperMC的优化技巧,很多服主可能只知道改改内存参数就完事了。但作为一个把1C1G小鸡榨出3倍性能的老玩家,我发现PaperMC其实藏着不少”黑科技”。就拿我最近折腾的那台Contabo垃圾VPS来说,原版服务端直接卡成PPT,但调教后的PaperMC居然能稳定带5个玩家——这中间的优化门道,值得好好说道说道。

GC调优的玄学艺术

大多数人只知道用-Xmx限制内存,但真正影响性能的反而是垃圾回收策略。我测试过,在1G内存环境下,ZGC(-XX:+UseZGC)比默认的G1GC能减少70%的卡顿时间。不过要注意,ZGC在Java 17上的表现才比较稳定,用旧版本反而可能适得其反。

配置文件里的隐藏选项

PaperMC的paper-world-defaults.yml里有个不起眼的参数max-auto-save-chunks-per-tick,默认值是24。把它调到6-8能显著降低地图保存时的CPU峰值,实测TPS波动从±5降到了±2。这招特别适合机械硬盘或者超售严重的VPS。

实体控制的骚操作

spigot.yml里可以设置entity-activation-range,把动物的激活距离从默认的32降到16,内存占用直接少了15%。更狠的是用/paper dumpentities命令找出”实体大户”,有次我发现某个玩家的钓鱼机竟然卡住了200条鱼!

说到这个,突然想起个趣事:有次我给服务器加了entity-per-chunk-limit限制,结果第二天就收到玩家投诉说”刷怪塔不工作了”。你看,优化和游戏体验之间的平衡,有时候真的需要反复调试。

网络层的冷门技巧

PaperMC的use-alternate-keepalive选项堪称救星,特别适合跨国服务器。启用后,欧美玩家连亚洲服务器的延迟从300ms降到了150ms左右。原理其实很简单:它把keepalive包改成了UDP协议,但效果立竿见影。

最后分享个血泪教训:千万别在低配机上用--forceUpgrade升级世界!我有次手贱点了这个,结果1G内存直接OOM,地图文件差点报废。现在我都用--erase-cache慢慢来,虽然慢点但稳妥。

说实话,PaperMC的优化就像拼乐高,每个小调整都可能带来意外惊喜。你们还发现过什么不为人知的调优技巧?欢迎来交流——毕竟在座的各位,谁还没被OOM坑过呢?

评论