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,这显然不符合常理,因此可以初步推断是内存泄露,关于内存泄露的优化解决方案十分简单,可以输入这一条
开启修复内存泄露,亦或者
点击荧光色的部分就可以了
(!)此办法高度有效
关于多线程
多线程是什么?简单来说,就是同时处理的事情,这个概念比较抽象,打个比方,小明在A地打螺丝,小刚在B地打螺丝,小芳在C地打螺丝,这么几个人如果同时打螺丝,那么就是多线程,而同时处理这些螺丝,就是多线程处理
了解了这些,我们再看优化参数-XX:ParallelGCThreads=4
设置并行垃圾收集线程数-XX:+UseDynamicNumberOfGCThreads
参数允许根据服务器的负载和可用的处理器核心动态调整垃圾收集线程的数量
未使用跑图
使用后跑图
为什么要选择跑图来测试?因为跑图本身就是一种多线程处理方式,是我的世界为数不多的世界生存多线程了,因此如图可以看出,使用了此参数增加了53.08%的CPU利用率
tips:尽管在实际看不出来,但正所谓数量大了,结果也就大了,具体还是要看人数决定
此外,并不是所有的优化参数都是有效的,就像都是九年义务教育,为什么有些人听不下去一样,取决于服务器,如果对服务器没有任何效果,请排除优化参数这一条路(特别是内存回收),优化参数本身半真半假,对了性能能上一个档次,错了也没啥影响,要慎重选择