这篇教程主要是讲一下关于许多服主被核心自带的 "autosave" 折磨的问题。
如果你卡服时满足下面这个条件,不妨可以排查看看是否有这个问题。
怎么看自己服务器有没有这个问题呢?
首先,你需要跑一份 timings 报告, 在后台输入 /timings on 开启 timings, 等待 5 ~ 10 分钟, 再输入 /timings paste 生成一份 timings 报告的链接,复制生成的链接,在浏览器打开,这里我们以 CatServer 跑出来的 timings 报告为例, Spigot 也是一样的,我们打开 timings 报告后,只需要展开 "Minecraft Total" 下的内容,下面展示一个例子。
接下来你要做的就是点击下图箭头所指向的按钮。
如展开后看到 'Event' 下有 'World Save' 项,且 'World Save' 的 'Pct Tick' 和 'Avg' 非常高, 那么恭喜, 你服务器就出现了本教程所述的问题,如下图。
这个问题是自带的 '自动存储' 在主线程操作时的问题,当然,在主线程操作没问题,问题就出在 '存储时工作量过大' 导致主线程停滞的问题。
怎么解决这个问题呢?
我们打开在核心目录下的 bukkit.yml 文件, 找到 'ticks-per' 节点下的 'autosave' 设置为 0 就解决了问题,当然,设置为 0 了,就不会自动存储啦,那岂不是对数据很不安全?接下来,你需要寻找一款对这方面有优化的自动存储插件,装上,重启服务器,问题至此差不多解决了。
如果你卡服时满足下面这个条件,不妨可以排查看看是否有这个问题。
卡顿情况偏向有时序卡顿,例如每 10分钟 卡顿一段时间。
怎么看自己服务器有没有这个问题呢?
首先,你需要跑一份 timings 报告, 在后台输入 /timings on 开启 timings, 等待 5 ~ 10 分钟, 再输入 /timings paste 生成一份 timings 报告的链接,复制生成的链接,在浏览器打开,这里我们以 CatServer 跑出来的 timings 报告为例, Spigot 也是一样的,我们打开 timings 报告后,只需要展开 "Minecraft Total" 下的内容,下面展示一个例子。
接下来你要做的就是点击下图箭头所指向的按钮。
如展开后看到 'Event' 下有 'World Save' 项,且 'World Save' 的 'Pct Tick' 和 'Avg' 非常高, 那么
这个问题是自带的 '自动存储' 在主线程操作时的问题,当然,在主线程操作没问题,问题就出在 '存储时工作量过大' 导致主线程停滞的问题。
怎么解决这个问题呢?
我们打开在核心目录下的 bukkit.yml 文件, 找到 'ticks-per' 节点下的 'autosave' 设置为 0 就解决了问题,当然,设置为 0 了,就不会自动存储啦,那岂不是对数据很不安全?接下来,你需要寻找一款对这方面有优化的自动存储插件,装上,重启服务器,问题至此差不多解决了。
最后编辑: