Spark

Spark是用来统计服务器性能数据的插件。

  • 版本 1.4.1

Spark插件可以获得服务器精确的性能统计信息。它只能获得关于机器与虚拟机性能的数据,不能帮助寻找卡顿的来源。

输入/tps可以查看性能统计信息。


[⚡] TPS from last 5s, 10s, 1m, 5m, 15m:

[⚡] 20.0, *20.0, *20.0, *20.0, 19.66

[⚡]

[⚡] Tick durations (avg/min/max ms) from last 5s, 10s, 1m:

[⚡] 22.0/13.4/136.1, 22.0/11.5/197.5, 18.7/10.7/254.4

[⚡]

[⚡] CPU usage from last 10s, 1m, 15m:

[⚡] 63%, 42%, 40% (system)

[⚡] 62%, 41%, 39% (process)

这是Spark返回的统计信息,当时服务器大约有15人。

消息第一部分是TPS值。下面的五个数字是服务器近5秒,10秒,1分钟,5分钟和10分钟的平均tps值。
如果tps值附带星号(*),说明服务器在规定的时间内执行完了所有的刻,状态绝佳。

消息第二部分是MSPT值。下面的三组数据是服务器近5秒,10秒和1分钟的统计数据。
每组数据的三个值从左到右依次是平均值,最小值与最大值。

消息第三部分是CPU利用率。下面的三组数据是服务器进10秒,1分钟和15分钟的平均利用率。
利用率的第一行是服务器主机总负荷,第二行是Minecraft服务器本身的负荷。


常见问题:

什么是TPS?

  • TPS是Ticks Per Second。
  • Minecraft服务器的实质是一个世界模拟器。TPS就是服务器每秒执行世界模拟计算的次数。
  • 服务器每模拟一次世界,叫做一刻(tick)。正常运行的服务器每秒会执行20次世界模拟。
  • 如果世界模拟花的时间太长,导致每秒执行不完20次,玩家就会感到卡顿。
  • TPS总是一段时间内的平均值,没有瞬时TPS。

什么是MSPT?

  • MSPT是Milliseconds Per Tick。
  • 服务器执行一次世界模拟所花的平均时间就是MSPT。
  • MSPT的单位是毫秒(ms)。1000毫秒是1秒。正常运行的服务器MSPT低于50ms。
  • 如果MSPT低于50ms,服务器会在多余的时间内休息。如果MSPT高于50ms,TPS会下降。

服务器负载规律是怎样的?

  • 服务器平均负荷不高。事实上,在玩家加载的区块多到能给服务器带来麻烦以前,带宽就已经耗尽了。
  • 服务器经常经受的是单tick内巨量的计算,所以主机要有很大的性能余量。
  • 表现在统计数据上,tps会总是差一点20,mspt平均值低于50ms但最大值远远高于50ms。
  • 实际服务器运行中总有负载波动,人数多的时候也经常出现tps下降。

为什么TPS维持在个位数?

  • 如果TPS稳定在某个小于20的值,但服务器本身看起来很稳定,一般不难排查。
  • TPS达到个位数通常是实体(掉落沙)导致的卡服,有恶意玩家操作。请联系管理员。

为什么TPS维持在15左右?

  • 通常是地皮操作导致的卡服,一般几分钟内会恢复。
  • 请使用/tps指令查看数据而不是查看TAB列表的长时间平均值。
  • 如果一段时间问题还没有消失请联系管理员。

为什么TPS稳定在18左右?

  • 卫星地图渲染时会尽所能地利用全部的资源,不过我们设置让tps不能低于18。
  • 请联系管理员询问正在进行的渲染操作。
  • 更多信息请参阅Dynmap插件词条。

为什么服务器一卡一卡的,打不了指令但能聊天?

  • 执行不了指令说明有插件(甚至服务器本身)在主线程上卡顿。
  • 这些插件一般执行大规模的操作,或者有主线程上的网络访问。
  • 很多卡顿是恶意行为导致的,请立刻联系管理员排查。
  • 关于为什么打不了指令但可以聊天,请参阅Multiverse-Core词条中的异步聊天。