spark - Minecraft 性能分析插件/模组
spark 是一个用于 Minecraft 客户端、服务器和代理的性能分析插件/模组。有用链接
- 官网 - 浏览项目主页- 文档 - 阅读文档和使用指南
- 下载 - 获取最新的开发构建版本
功能简介
spark 由多个组件组成,每个组件的详细信息如下:- CPU 分析器:诊断性能问题。
- 内存检查:诊断内存问题。
- 服务器健康报告:跟踪服务器的整体健康状况。
CPU 分析器
spark 的分析器可用于诊断性能问题,例如“卡顿”、低 tick 率、高 CPU 使用率等。它的特点包括:
- 轻量级 - 可以在生产环境中运行,影响最小。
- 易于使用 - 无需配置或设置,只需安装插件/模组。
- 快速生成结果 - 仅需运行约 30 秒即可生成有用的性能问题分析结果。
- 可定制 - 可以调整以针对特定线程、以特定间隔采样、仅记录“卡顿”时段等。
- 高度可读 - 简单的树状结构便于分析和解释。查看器还可以应用反混淆映射。
它通过采样系统活动的统计数据并基于这些数据构建调用图来工作。调用图随后显示在在线查看器中,供用户进一步分析。
spark 提供两种不同的分析引擎:
1. Native AsyncGetCallTrace + perf_events - 使用 async-profiler(仅适用于 Linux x86_64 系统)。
2. 内置 Java ThreadMXBean - sk89q 开发的流行 WarmRoast 分析器的改进版本。
内存检查
spark 包含多种工具,可用于诊断服务器的内存问题:- 堆摘要 - 获取并分析服务器的内存快照。
- 提供 JVM 堆的简单视图,显示每个类的内存使用情况和实例计数。
- 不旨在完全替代专业的内存分析工具(见下文)。
- 堆转储 - 获取服务器的完整(HPROF)内存快照。
- 转储(并可选压缩)JVM 堆的完整快照。
- 可以使用常规分析工具检查此快照。
- GC 监控 - 监控服务器上的垃圾回收活动。
- 允许用户将 GC 活动与游戏服务器卡顿相关联,轻松查看 GC 的持续时间和释放的内存量。
- 观察年轻代/老年代垃圾回收的频率/持续时间,以指导 GC 调优标志的使用。
服务器健康报告
spark 可以报告多项指标,总结服务器的整体健康状况。这些指标包括:
- TPS - 每秒 tick 数,比 `/tps` 命令更准确。
- Tick 持续时间 - 每个 tick 的持续时间(最小、最大和平均)。
- CPU 使用率 - 服务器进程和整个系统的 CPU 使用情况。
- 内存使用率 - 进程使用的内存量。
- 磁盘使用率 - 系统的磁盘空间使用情况。
除了提供 tick 率平均值外,spark 还可以监控单个 tick - 当单个 tick 的持续时间超过特定阈值时发送报告。这可用于识别趋势和性能问题的性质,相对于其他系统或游戏事件。
使用方法
要安装,只需将 `spark-nukkit.jar` 文件添加到服务器的 `plugins` 目录中。有关命令的使用信息,请参阅文档。
如果您需要帮助分析性能分析报告,或只是想聊天,请随时加入我们的 Discord。
指南
文档中提供了一些小型“指南”,涵盖以下主题:- Tick 循环
- 查找卡顿峰值的原因