1根据 go pprof性能调试工具进行问题定位
2,查询出问题所在,是调用外部接口数据传输数据量过大引起内存溢出
总结:学习到pprof工具的使用,通过生成类似火焰图、堆栈图,内存分析图等进行问题排查
两步,第一步,在引用中加上
"net/http"
_ "net/http/pprof"
第二步,在代码开始运行的地方加上
go func() {
log.Println(http.ListenAndServe(":6060", nil))
}()
参考链接
2,golang系列—性能评测之pprof+火焰图+trace - 知乎
需要安装的工具: graphviz (具体过程可百度)
有用的指令:
go tool pprof main http://localhost:8000/debug/pprof/heap //采集内存信息
go tool pprof main http://localhost:8000/debug/pprof/profile //采集cpu信息
go tool pprof -http=":8090" http://localhost:8080/debug/pprof/profile //自动在浏览器中查看