标准答案
- CPU profile 看采样时间集中在哪些函数,适合定位计算热点。
- heap profile 看当前或累计分配和存活对象,适合分析内存增长和分配来源。
- goroutine profile 看数量和阻塞栈,适合定位等待、泄漏和死锁线索。
- 采样文件包含业务上下文风险,要控制暴露和保存期限,并与指标时间线关联。
题目解析
CPU profile 看采样时间集中在哪些函数,heap 看分配/存活对象,goroutine 看数量和阻塞栈,mutex/block profile 看同步等待。不同 profile 回答不同问题,不能互相替代。
采样结果依赖版本、流量、数据分布和采样窗口。应把 profile 与 P99、吞吐、GC、下游等待和发布配置关联,避免优化一个局部指标。
pprof 入口和文件可能包含敏感代码路径、参数和内存内容,生产必须鉴权、网络隔离、限时采集和安全保存。
常见误区
- 误区:只看 CPU profile 排查内存泄漏。改正:使用 heap、goroutine、mutex/block 和指标组合判断。
- 误区:线上无保护暴露 pprof。改正:放在受控管理面,鉴权、限流和限制访问来源。
- 误区:没有记录采样期间流量和配置。改正:保存版本、负载、时间窗口和环境信息,保证结果可解释。