查找卡顿真凶​

使用核心自带的Timings报告生成工具。
Timings工具只能适用于Bukkit及以其为分支的核心,他不适用于Sponge等独立核心。
类似于Timings的工具也有很多,如插件Spark等,都可以生成某段时间内性能的报告。

什么是Timings?​

Timings是核心为使用者提供的一个用于生成性能消耗以及服务器状态报告的工具。
Timings能够检查某个时间段内你服务器所有插件、实体、Tie、区块、世界的耗能情况,并通过不同的重点色将耗能标记出来。
需要注意的是:Timings属于服务端的工具,它并不能监控模组单独的占用,但是如果是模组的实体等Minecraft原版的信息,还是会被记录的。

如何使用Timings?​

  1. 在服务器后台输入 timings on 即可从当前开始记录性能报告。
  2. 等待10-15分钟。
  3. 在服务器后台输入 timings paste 将性能报告打印出来。
  4. 后台将会给你一个性能报告的链接。
  5. 将链接复制,并在浏览器中打开。
  6. 分析报告,得出结论

 

怎么看Timings报告?​

怎么找:​

  1. 首先我们需要找到消耗最大的一个分类。
  2. 然后每次都找消耗最大的分类,一直向下打开。
  3. 知道打开到无法再打开,然后查看所有任务的消耗。
  4. 某个大类的重点色可能为红色,但是我们需要向下一层一层打开。
    因为大类的内部可能包含了很多的小任务。而我们就需要找这些
    小任务,并看他的滞后情况。

Timings报告的滞后毫秒重点色​

  1. 绿色
    该任务不会造成服务器之后,属于正常运行。
  2. 黄色
    该任务可能会造成服务器的轻微滞后,但是问题不会太大
    也有可能是因为数据量过大导致的滞后,但是几乎可以无视。
  3. 红色
    该任务可能会造成服务器周期性、长期性的严重滞后。
    玩家可能会在游玩的时候出:走里回弹、被系统判定为移动过快、无法说话、挖掘方块不正常掉落
    等一切影响服务器正常游玩的情况。
    如果遇到了红色,请一定要重视。

找到滞后内容后如何修复?​

  1. 如果是插件,可以考虑删除该插件并找作者反馈。
    如果是大型插件(如:MythicMobs)这可能并不是插件的问题,无法避免的卡顿,
    这个时候你可以考虑减少插件的一些细节描述(如减少粒子效果等炒作)。

    如果是小插件的话,则你需要引起重视,这可能不是你能够修复的,
    你需要向插件作者反馈滞后的情况,并提供给他你的timings报告。

  2. 如果是实体、或者是Tile(如工业服就会有很多的Tile)
    你首先需要判断这是原版的怪物还是模组的怪物。
    如果是原版怪物,你可以在服务端的相关配置文件中,降低刷怪概率和阈值
    你也可以使用优化插件,来有效降低实体为你服务器带来的压力。

    如果是模组怪物、你也可以使用上面的这一套,或者直接去对应模组的配置文件内调整
    模组生物的生成阈值和设定(如果提供了)

    如果是大量的Tile,那么上面两种优化方案对你可能都没有什么效果。
    你可以通过特殊编写插件来优化对应模组的Tile(如工业限制某个区块内的机器数量)

  3. 如果是区块导致的卡顿,可以使用区块卸载管理器或者优化插件
    进行区块的自动卸载,从而减少服务器内存压力。但是通常情况下
    如果某个区块内有Tile(机器,包括熔炉和工业机器)在工作的话,区块通常不会被卸载
    因为如果此时区块被卸载,那么机器将会停止工作。当然如果你愿意怎么做,也可以。

补充知识点​

什么是实体、Tile、区块、世界​

  1. 实体(Entity)
    实体包括了所有的生物、玩家、船、矿车、即将引爆的炸弹、末影水晶等都属于实体类。

  2. 机器(Tile)
    Tile的范围非常的广泛,我们可以理解为它是需要消耗一定的CPU算力来计算的方块。
    Tile过多可能会导致CPU负荷。

  3. 区块(Chunk)
    在MC中,已16*16的一个范围,为一个区块,区块主要会被读取到内存中。
    被区块过多会导致实体、Tile、内存都超常的升高。

  4. 世界(World)
    主世界、末地、地狱是原版所自带的三个基础世界。
    如果你加了Mv或者Mw插件则可以在这基础上,创建自己想要的世界。
    正常情况下,世界并不会带来明显滞后,但是如果你的世界数量过多,也会造成滞后。
Ha estat útil la resposta? 6 Els usuaris han Trobat Això Útil (10 Vots)