Java版优化指南

警告:

优化可能会带来许许多多的问题,例如红石机械的影响,玩法的破坏等种种因素,请您在备份之后进行优化

前言

您选择的服务器软件可能在性能和 API 可能性方面产生巨大差异。当前有多种可行的流行服务器 JAR,但也有一些由于各种原因您应该远离。如Paper服务端破坏了大量原版特性,不过你可以使用Purpur服务端来解决方法。
如果你还是不知道如何选则,看看下面这张图就知道了

转载至《我的世界服务器搭建指南》

您应该优先选择较高版本服务器,而不是1.7.10, 1.8.8, 1.12.2这些扁平化之前版本,因为大部分服务端团队只会更新最新的几个版本

Spigot 和 Paper 提供的设置可以大大提高性能。本文讲解了在游戏卡顿的情况下充分利用服务端的设置,以减少卡顿/提升人数上限/提升TPS。此外,如果你是mod服,请尽量选择fabric等优化模组服务端,亦或者安装优化模组来解决卡顿问题,除此之外,server.properties文件设置也是不错的选择

目前主流服务端中,Purpur相较于Leaves服务端综合能力更强,但却没有假人这一功能

注意:卡顿不止是单纯的群员在群里或服务器里说我卡了,而是要多方面分析原因,否则事倍功半
如果你想了解更多关于MC卡顿的原理,建议看到上面的🎮高级 | java版服务器概念一览

目录:

  • bukkit.yml文件优化选项
  • spigot.yml文件优化选项
  • paper.yml文件优化选项
  • server.properties文件优化选项
  • 优化插件/mod推荐
  • 使用mod/插件判断卡顿原因
  • 使用优化参数解决卡顿原因
  • 优化插件/mod推荐

    bukkit.yml文件优化选项(插件服)

你知道吗?bukkit.yml一般在插件服务端生成,可千万不要找错了哦~

找到bukkit.yml文件

点击它打开文件编辑

这其中,有几个设置可以进行调整以达到优化的目的,请选择合适的设置进行调整



这一块是用来调整刷怪的,简单来说,就是每个玩家加载区块生成的怪物多少
默认值: monsters:70, animals:10, water-animals:15, water-ambient:20, ambient:15
推荐值:monsters:50, animals:8, water-animals:7, water-ambient:10, ambient:1

性能影响:重


这一行的作用是用来调整每个区块的卸载时间,如果能更好的,有效地卸载空块,在一定程度上会影响TPS,搭配优化模组/插件chunky有奇效
默认值: 600
推荐值: 400
性能影响: 中


限制小怪的公式是[playercount] * [limit],其中“玩家数”是服务器上的当前玩家数量。从逻辑上讲,数字越小,你看到的小怪就越少。per-player-mob-spawn对此施加了额外的限制,确保怪物在玩家之间平均分配
额,巴拉巴拉一大堆,反正就是在玩家视野范围内调整刷怪的,酌情调整
默认值: Monster:1,water:1,water-ambient:1,ambient:1
推荐值:monster:5,water:11,water-ambient:21,ambient:31
性能影响:视情况而定

spigot.yml文件优化选项(插件服)

找到spigot.yml文件

点击它打开文件编辑,在这之中,有几个设置可以进行调整以达到优化的目的,请选择合适的设置进行调整



这一行默认为false,如果设为true,则刷怪笼生成的怪物将没有ai(也就是彻底傻掉)
这对于使用很多很多刷怪笼来打造刷怪农场很有效,但一般没人会这样….
性能影响:中

paper.yml文件优化选项(插件服)

需要注意的是,paper.yml文件在高版本被划分为两个文件

这里的优化选项在paper-world-default文件里面


这一行默认为false,如果设为true,猫在箱子上无法打开箱子的特性,对于性能的影响视情况而定


设置为true将不会让玩家进入未加载的区块(也就是加载滞后的区块)副作用也是明显的,如果你服务器真的卡到无药可救了,这样设置会更加加重,甚至会导致玩家被卡退
性能影响:中

server.properties文件优化选项(插件服/mod服)

打开server.properties文件

点击它打开文件编辑,在这之中,有几个设置可以进行调整以达到优化的目的,请选择合适的设置进行调整


模拟距离是服务器将在玩家周围互动的距离。本质上是与玩家发生事情的距离。这包括熔炉冶炼、农作物和树苗生长等
也就是说,调的越高越好,但同时性能损耗也跟着明显
推荐值: 4-8
性能影响: 视情况而定,建议与下文的渲染距离相等

这是整个教程里最大头的文件,对于性能的影响对比其他设置是最高的因为它限制了块渲染距离。开放世界服务器(如生存)应该努力使用 6+,但如果块生成导致延迟,共享主机、低规格或大量玩家数量的其他服务器可能会考虑 4-5
默认值: 10
推荐值: 4-8
性能影响: 十分重

使用mod/插件判断卡顿原因

spark插件/modhttps://spark.lucko.me/download#
下载完毕后,放进mod/插件文件夹,重启服务器
首先,你可以开启/spark profiler start开启性能分析
之后,请在控制台(或op)输入/spark profiler open(控制台需要撤掉斜杠)即可查看检测效果
稍作等待之后,我们点击给出的网址,就可以加以佐证卡顿的原因啦

使用优化参数解决卡顿问题

关于内存泄露

内存泄露是什么?简单来说,它是指如果服务器啥事没干但却有着大量内存且十分卡的情况下,内存爆满,比如说我刚开服内存4.3g而平时却是2.2g,这显然不符合常理,因此可以初步推断是内存泄露,关于内存泄露的优化解决方案十分简单,可以输入这一条

-XX:+UseG1GC -XX:-UseAdaptiveSizePolicy -XX:-OmitStackTraceInFastThrow -Dfml.ignoreInvalidMinecraftCertificates=True -Dfml.ignorePatchDiscrepancies=True

开启修复内存泄露,亦或者

点击荧光色的部分就可以了
(!)此办法高度有效

关于多线程

多线程是什么?简单来说,就是同时处理的事情,这个概念比较抽象,打个比方,小明在A地打螺丝,小刚在B地打螺丝,小芳在C地打螺丝,这么几个人如果同时打螺丝,那么就是多线程而同时处理这些螺丝,就是多线程处理
了解了这些,我们再看优化参数
-XX:ParallelGCThreads=4设置并行垃圾收集线程数
-XX:+UseDynamicNumberOfGCThreads 参数允许根据服务器的负载和可用的处理器核心动态调整垃圾收集线程的数量

未使用跑图

使用后跑图

为什么要选择跑图来测试?因为跑图本身就是一种多线程处理方式,是我的世界为数不多的世界生存多线程了,因此如图可以看出,使用了此参数增加了53.08%的CPU利用率
tips:尽管在实际看不出来,但正所谓数量大了,结果也就大了,具体还是要看人数决定

此外,并不是所有的优化参数都是有效的,就像都是九年义务教育,为什么有些人听不下去一样,取决于服务器,如果对服务器没有任何效果,请排除优化参数这一条路(特别是内存回收),优化参数本身半真半假,对了性能能上一个档次,错了也没啥影响,要慎重选择

如果你想要明显的多线程,建议还是得使用服务端(如folia等一系列分支)单靠优化参数指望有明显的优化无异于靠上课时间睡觉来补觉
最后,海绵科创的我的世界服务器貌似还没有收录多线程参数的优化参数,请联系管理人员修改

优化插件/mod推荐

除了这些设置之外,您也可以安装优化mod/插件来解决卡顿问题
以下是一些常用的优化插件:

  • Chunky 非常好用的预加载插件/mod,让跑图不在卡顿(除非你有恐怖的硬盘容量和至少4核的CPU,否则装了也只能实现50%的功能,不过这也够用了,真的)
  • Lagfixer 总体来说,这个插件对于原版差别不大,提供了8个优化选项,其中有2个是破坏原版玩法的,其他的大体还行,不过没有中文,得自己汉化总体质量不错,优化比较有效果,但从单个优化来看确实和原版差别不大,建议多个一起使用(不要开里面的扫地装置,问就是前人的智慧)
  • Spark 也…算是一个,毕竟可以帮你总结性能情况和分析实体占用,区块加载数量等等,可以再一定程度上辅佐优化,当然了,前提是你的英语够好亦或不用看文字就知道啥意思的专业大佬,否则就只能靠机翻了
  • Memory Leak Fix 一个支持forge/fabric的内存泄露修复插件,更好的管理内存,和chunky一样,即装即用,十分方便,对内存占用有一定的减少
  • 除此之外,你也可以使用客户端优化插件,不过这一功能仅限于客户端,但可以有效避免因为客户端配置问题而闹出的乌龙

    需要注意的是,chunky的mod版本forge和fabric都兼容,属于是平民神器了;我们非常不建议您去写一个或找人写一个优化插件,亦或者买一个,因为这是非常没有性价比的选择。请记住:一般地,闭源优化插件/mod导致存档/红石/生物的破坏是很严重的(当然这也并不排除某一些真的很好用的闭源插件/mod)

总结:升级服务器能解决99.9%的卡顿问题(迫真)

作者:tangbao  创建时间:2024-09-06 19:04
最后编辑:tangbao  更新时间:2025-01-16 22:44