/spark healthreport

基本信息

属性 值
命令名 healthreport
别名 health、ht
来源 HealthModule.healthReport(HealthModule.java:87)
参数 --memory、--network(均为布尔 flag)
Tab 补全 TabCompleter.completeForOpts(arguments, "--memory", "--network")

一次性生成服务器健康快照并直接打印到聊天框。这是 spark 提供的最完整的单次诊断输出。

功能

先回复「Generating server health report…」,随后按固定顺序拼装报告段落(HealthModule.healthReport):

顺序 段落 条件 数据源
1 tick 统计(TPS + tick 时长) tickStatistics != null TickStatistics
2 CPU 统计 无条件 CpuMonitor
3 基础内存统计 无条件 ManagementFactory.getMemoryMXBean()
4 详细内存统计(分代/分池) 传 --memory MemoryMXBean 池级明细
5 网络统计 传 --network 时为详细模式 NetworkMonitor
6 磁盘统计 无条件 NetworkMonitor / 磁盘空间探针

段落 1 复用与 /spark tps 相同的 TickStatistics;段落 3 的 MemoryMXBean 只读取堆/非堆的使用量、已提交量与上限,不触发 GC。

网络统计是条件段但默认也有基础内容:addNetworkStats(report, arguments.boolFlag("network")) 把 flag 传进去决定详细程度,因此不带 --network 时仍会输出网络的概览信息,只是粒度较粗。

磁盘统计无条件输出,反映 spark 所在目录所在卷的可用空间。

数值

本命令不引入新数值,只聚合既有监控器的读数:

指标 统计窗口 来源
TPS 5s / 10s / 1m / 5m / 15m TickStatistics
tick 时长(min/med/95%/max) 10s / 1m TickStatistics
CPU(系统 + 进程) 10s / 1m / 15m CpuMonitor

--memory / --network 没有对应的关闭 flag —— 也就是说无法主动隐藏这两段,只能选择是否展开细节。

交互

触发 行为
服务端执行 NetworkMonitor.ensureMonitoring() 已在 SparkPlatform.enable 中启动,报告含全服数据
客户端执行 报告仅反映客户端进程的 CPU/内存/网络/磁盘

与 profiler 不同,healthreport 不产生任何文件、不做任何网络上传,全部内容以聊天文本返回。

相关条目