/spark heapsummary
基本信息
| 属性 | 值 |
|---|---|
| 命令名 | heapsummary |
| 别名 | 无 |
| 来源 | HeapAnalysisModule.heapSummary(HeapAnalysisModule.java:60) |
| 参数 | --save-to-file、--run-gc-before |
| Tab 补全 | TabCompleter.completeForOpts(arguments, "--save-to-file", "--run-gc-before") |
导出堆内存构成摘要(不是完整 dump),用于找出哪些对象类型占用了堆。
功能
执行顺序(HeapAnalysisModule.heapSummary):
- 若传
--run-gc-before:广播「Running garbage collector…」并调用System.gc() - 广播「Creating a new heap dump summary, please wait…」
HeapDumpSummary.createNew()抓取快照,失败则广播「An error occurred whilst inspecting the heap.」(红色)并返回- 转为
SparkHeapProtos.HeapData后二选一输出:- 默认上传:POST 到 bytebin(媒体类型
MediaTypes.SPARK_HEAP_MEDIA_TYPE),成功则广播「Heap dump summmary output:」+ 可点击的viewerUrl + key链接- 注意:源码里
summmary是三个 m,属原文拼写
- 注意:源码里
--save-to-file:写本地文件
- 默认上传:POST 到 bytebin(媒体类型
上传失败时同样回退存盘(与 profiler 的 handleUpload 同构)。
与 heapdump 的区别
| heapsummary | heapdump | |
|---|---|---|
| 产物 | 堆类型分布摘要(proto SparkHeapProtos.HeapData) |
完整堆快照 |
| 内存占用 | 低 | 极高(等于堆大小) |
| 生成方式 | HeapDumpSummary.createNew() |
HeapDump.dumpHeap(file, liveOnly) |
| 默认输出 | 上传到查看器 | 直接写本地文件(仅在指定压缩时再上传处理) |
| 可压缩 | 否 | 是 |
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 存盘文件名 | heapsummary-<yyyy-MM-dd_HH.mm.ss>.sparkheap |
platform.resolveSaveFile("heapsummary", "sparkheap"),HeapAnalysisModule.java:120 |
| 上传媒体类型 | MediaTypes.SPARK_HEAP_MEDIA_TYPE |
HeapAnalysisModule.heapSummary |
| 文件名时间戳格式 | yyyy-MM-dd_HH.mm.ss |
SparkPlatform.DATE_TIME_FORMATTER |
交互
| 触发 | 行为 |
|---|---|
| 不带 flag | 先 System.gc() 之外直接抓取,上传并给出查看器链接 |
--run-gc-before |
抓取前强制一次 System.gc(),输出会排除已回收对象 |
--save-to-file |
跳过网络,只写本地文件 |
| 上传异常 | 回退为存盘并打印堆栈 |
相关条目
- /spark heapdump - 完整堆快照,含压缩支持
- /spark gc - 堆使用的成因侧证据
- 报告输出与查看器 - 上传端点与文件命名规则