本帖最后由 nostalfinals 于 2024-7-13 19:19 编辑
该插件在 GPLv3 许可下开源,本人在协议允许的范围内将其转载发布。
spark 是用于 Minecraft 客户端、服务器和代理的性能分析器。 实用链接 - 官网 - 查看项目主页
- 文档 - 阅读文档和使用指南
- 下载 - 最新的开发版
这个插件的作用是什么? spark 由多个不同的组件组成,以下是它们的详细说明:
- CPU 分析器:诊断性能问题。
- 内存刨析:诊断内存问题。
- 服务器健康报告:对服务器健康状况保持关注。
⚡ CPU 分析器
spark 的分析器可以用来诊断性能问题:“卡顿”,低 TPS,高 CPU 占用,等等。
它具有以下特性:
- 轻量化:可以在生产环境中以极小的影响运行。
- 易于使用:不需要任何的配置,直接安装插件或 Mod 即可。
- 快速见效:运行大约 30s 就可以对有性能问题的地方生成足够有用的报告。
- 可自定义:可以设置为针对特定的线程、以特定的间隔采样、只记录“卡顿”期间,等等。
它通过对系统活跃的统计数据进行采样,并利用该数据生成调用图。调用图将通过网页呈现以供用户进一步分析。
目前提供这两个不同的分析引擎:
- 原生 AsyncGetCallTrace + perf_events - 基于 async-profiler(仅在 Linux x86_64 系统上可用)。
- Java 内置的 ThreadMXBean - 由 sk89q 打造的知名分析器 WarmRoast 的改进版本。
⚡ 内存刨析
spark 包含几个用于诊断服务器内存问题的工具。
- 用于简单查看 JVM 的堆状态,查看内存用量和每个类的实例数量。 - 不是专用内存分析工具的完全替代品(查看下文)。
- 堆转储 - 获取服务器内存(HPROF)的完整快照
- 转储(可选压缩)服务器堆内存的完整快照。 - 这个快照可以通过传统的内存分析工具查看。 - 使用户可以找出由 GC 活动造成的服务器卡顿,并轻松的查看它们持续了多长时间和多少内存被释放了。 - 观测年轻代或老年代垃圾回收的频率或时长来了解要使用哪些启动参数。
⚡ 服务器健康报告
spark 可以统计服务器的不同指标来生成报告。
这些指标包括:
- TPS - 每秒刻数,比 /tps 命令的精度更高。
- 刻时长 (MSPT) - 每个刻花费的时长(最小值、最大值、平均值)。
- CPU 利用率 - 服务器进程和整个系统使用了多少 CPU。
- 内存用量 - 服务器进程使用了多少内存。
spark 不仅可以提供 TPS 的平均信息,还可以监测某个独立的刻 - 每当有一个刻花费的时间超过了一定的阈值就警报,这可以用于识别性能问题的规律,以知晓它们是否和系统或游戏事件有关。
用法
将 spark.jar 放入服务器的 plugins 文件夹即可完成安装。
有关于指令的使用方式,请 查看文档。
如果你想让其他人帮忙查看一个性能分析报告,或只是想聊天,请加入 Discord。
指南
文档中有几个小型的“指南”,包含以下内容:
|