为什么我要写下这篇教程 不是为了让你们的服务器更加流畅 我只是希望自己的服务器更加流畅 我开着一个 低资源消耗的纯插件服务器 原来的流畅度都一直特别好 现在达不到原来的水平了
总所周知 垃圾侠每个区的流畅度都不相同 分到一个好的区 也至关重要的 虽然可以找客服换区 但是 这不能解决目前的根本问题
垃圾侠采用的是 一个区一台主机 房间是利用Windows容器相互隔离 内存可以做到独立分配 但是总体还是虚拟内存的超额分配 分配出去的内存 实际上也不会物理内存直接占用 这导致了一个至关重要的问题 一些垃圾服主创建垃圾服务器在优化不到位的情况下 压榨垃圾侠主机性能 导致全区流畅度都被拉低 重点是 这样子的傻逼服主还很多 所以更加呼吁大家 做好自己服务器的优化 缓解垃圾侠主机的压力 从而提升整个垃圾侠的体验
在垃圾侠以外 有很多服务端都可以挑选 垃圾侠内 就简单的分为两种 模组核心 和 优化插件核心 首先如果你不是开mod服 或者 可以不使用某些mod 建议全部使用插件核心
这两个核心的资源消耗简直是天差地别
Mod相对于插件来说 更加的消耗cpu性能 同时模组核心还会捆绑运行forge以及一些不必要的运行时库
而插件核心 只有bukkit api 而 bukkit只是nms的封装库 实际上不会对性能造成太多损耗 这导致插件核心要比模组核心流程的多
而垃圾侠所使用paper核心是对于插件核心的高度优化 极大的降低资源消耗 提升运行效率 paper会将地图的存储 区块加载 区块卸载 访问硬盘io 全部切换至异步线程处理 这是垃圾侠挑选paper端的主要原因 大部分服主不会优化 所以只能挑选更好的优化核心来降低垃圾侠的资源消耗 选择了一个好的核心 能极大的降低资源消耗
我不是说Mod服不好什么的 我只是 呼吁 除mod玩法外(无中生有 工业 科技) 尽量不要使用模组核心
首先 第一个建议是 只使用一个玩法插件或mod
空岛 海岛 监狱 科技 生存 冒险 rpg 等 都是一些玩法 玩法类的插件以及mod一般都包含大量内容 建议不要多加 部分特殊的除外 比如科技空岛 粘液空岛 这些都是必要的 没法不加 如果可以 尽量不要开这种服务器
第二个建议是 不要使用优化相关的插件
包括垃圾侠现有的EscapeLag、LaggRemover、NeverLag
它们包括的功能 卸载出生点区块 阻止生物过多 清扫掉落物 清理实体 都是在主线程进行
清扫时 会造成服务器瞬间卡顿 并且它们只是清理Java中一些实例对象 实体 掉落物等
他们的定时任务 以及 他们的清理过程都会消耗服务器cpu 清理的 却是服务器内存
尽量减少cpu消耗是有必要的 垃圾侠也给我们分配了足够多的内存
这个是最重要的点 也是内容最多的地方
上面的两种方案都很难对正在运营的服务器优化性能 插件和mod 以及服务端都不好再进行变动 这里是 仅仅通过原版的配置 即可优化服务器性能
这里提到的都是服务器的配置 不是插件的配置 插件的具体配置那就多的去了 就不写了
https://zhuanlan.zhihu.com/p/是服务器根目录不用我提吧
一个一个来 从小往大的来
1. https://zhuanlan.zhihu.com/p/plugins/bStats/config.yml
这个配置可以控制服务器的bStats 这个所有的使用bukkitapi的服务端都有的
它是一个分析系统 它会先服务器采集数据提供给插件开发者 更好的分析插件所有情况 很多知名插件都接入了bStats 关闭它可以减少服务器的任务 以及 分析数据造成的一些不必要的消耗 并且可以阻止bStats联网
enabled: false
2. https://zhuanlan.zhihu.com/p/ server.properties
这个文件控制着服务器的配置 这是所有的minecraft服务器都有的功能
它存储着很多默认的配置文件 具体项目有什么用 我就不提了 我就说几个能提升服务器性能的设置
allow-nether=false
允许地狱 像啥的 一些游戏模式 根本不需要这玩意 直接干掉就好了
view-distance=4
服务器视距 重要 这个设置会影响服务器给玩家周围加载的区块数量
极其影响服务器性能 建议调低 最低3 使用4是最好的 不要在意远处加载不到的情况
服务器的视距对服务器的影响很大 不要为了让玩家能看到更远的地方 而盲目开高视距 服务器视距会控制所有玩家的视距
服务器会对已加载的区块进行随机访问 同时加载卸载 保存区块都需要消耗性能
3. https://zhuanlan.zhihu.com/p/bukkit.yml
这个文件扩展了一些服务器设定 这个是所有使用bukkitapi的服务端都有的
settings.allow-end: false
允许末地 和之前允许地狱是一样的 一些游戏模式下 不需要就可以干掉
世界的话可以用多世界插件去创建 和 这个设置无关
spawn-limits:
这个下面的子项目都是设定怪物上限的 建议不要改高
chunk-gc:
这个下面的子项目是设定区块回收相关的 建议不要改动
过快的回收会压榨服务器cpu 过慢的回收又会导致服务器内存占用
可以稍微该高一点 但不要过分高
ticks-per: 重要
这个下面每一个子项都极其重要
animal-spawns控制动物生成周期
建议翻倍
monster-spawns 控制怪物生成周期
建议翻3-5倍 默认是 一秒尝试二十次生成 1tick
autosave 控制自动保存事件
这个保存是世界保存 正常关闭服务器会正常保存的
如果强制结束 才会体现自动保存的用处
建议翻2-4倍 默认是 五分钟保存一次 建议20分钟
4. https://zhuanlan.zhihu.com/p/spigot.yml
这个文件扩展了更多的服务器设定 这个是使用spigotapi 服务器都有的
advancements.这个下面的设定是服务器的进度功能
大部分情况下 除生存服务器外都可以关闭 这个的外部存储和读取 会影响服务器性能 也是可以极大提升流畅度的功能 设置为true是禁用
item-despawn-rate: 1200 重要
你们不是喜欢扫地大妈么
这个设定可以控制掉落物消失事件 默认是 6000=5分钟 1200=1分钟
commands.log: false
命令的日志 如果关闭 玩家使用的命令将不会被记录 你真的需要这个功能么?
说不要是不可能的 但是确实是可以去掉的设置 我在使用sponge的时候就没有这个
command. tab-complete: 1重要
这个是很重要的设置 建议修改为1 它扩展服务器的命令补全 设定的数字越高 代表 需要至少输入多少个字符才能补全 设置为-1为 完全关闭命令补全功能
命令补全对服务器的影响至关重要 每一次tab按键 都能获取服务器的命令列表
几百个命令 服务器还会对他们进行排序 一些操作 非常消耗资源
记住是非常消耗 tab压测的原理就是依靠命令补全 建议设置为 1-2 太高会影响补全功能 0是完全可以 -1完全关闭如果可以 关闭也行 不过关闭有些不方便
Stats下面是有关服务器统计的一些内容
和advancements类似 同样的 非生存服务器建议关闭
对了 生存服务器是不包括 空岛生存 等一些玩法的 因为空岛生存也无法完成全部进度 所以也是可以关闭的
world-settings. default. view-distance: 4 重要
同样是服务器视距 这个也是重要 因为不是改一个就行了的 原版服务器改一个确实可以 但是spigot更看重这个
以及
world-settings下面所有的设置 都可以看看 还有一些设置能极大的提升服务器性能
可以控制一些世界的设定 可以单独设置一个世界 只需要再写一个就行了
吧default改成世界名 往下写就行了 比如说 出生点 怪物生成啊 伤害啊 以及各种没用的都可以关了 可能有些繁琐 但是能提供服务器的性能
不是说你配置文件写得少就流畅的 你不写它会读默认配置 一样是读取到内存中 一样是每个世界一个配置
并且如果你设置了 服务器找到了独立的设置 就不会管默认设置了
5. paper.yml
这个文件里面全是优化项目 仅paperapi才有的
建议不要改动 默认配置是已经优化好了的 很多设置 会降低服务器性能 建议不要改动 而且内容过多
Messages可以改动相关的语言文件
有一些生存服可能需要防御xray
Paper提供了假矿功能
anti-xray: false
建议不要开 这个功能 非常消耗资源 能使服务器卡顿提升数倍
keep-spawn-loaded: false
保持出生的区块加载 建议关闭 这样子 出生点区块就不会永久加载了
我没提到的设置 就不用管了 可能会大幅度更改游戏内容 产生更多bug 这些都是比较重要的设定 其他的设定均不建议更改
其他的设置调整后可能会提升服务器消耗 可能还有一些漏掉的 但是应该也是不重要的
提升服务器性能不仅仅是靠着少部分服主的努力 更多的是大家的努力 降低对垃圾侠主机的性能消耗 每个人都只需要减低一点 多余下来的性能 足够整个垃圾侠都能流畅允许 这不仅是为了别人 更是为了自己
另外 优化插件尽量不要使用 更多的采用原版设定来代替优化
特别是 NeverLag以及EscapeLag 这两个反向优化插件 不仅不能提升性能
降低内存 对外部的服务器可能有用 可以让服务器容纳更多的人数 但是在垃圾侠 它们就都是反向优化插件NeverLag反而还有这很高的使用率
并且他们的优化效果 始终敌不过一条 System.gc()命令 来的更快 更直接
gc能直接调用JVM的虚拟机释放内存