• 欢迎访问周知博客,每周记录新知识
  • 祝各位学得开心!!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

使用pprof排查Go内存占用OOM原因

工作技术 admin 3年前 (2022-04-25) 612次浏览 0个评论

使用pprof排查Go内存占用OOM原因:

1.在api里启用pprof在route.go中写:

//pprof系统性能分析
func systemPprof(r *http.GinRouteRegister) {
pprofAPI := r.Engine.Group(“/pprof”)
{
pprofAPI.GET(“/”, gin.WrapF(pprof.Index))
pprofAPI.GET(“/cmdline”, gin.WrapF(pprof.Cmdline))
pprofAPI.GET(“/profile”, gin.WrapF(pprof.Profile))
pprofAPI.Any(“/symbol”, gin.WrapF(pprof.Symbol))
pprofAPI.GET(“/trace”, gin.WrapF(pprof.Trace))
pprofAPI.GET(“/allocs”, gin.WrapH(pprof.Handler(“allocs”)))
pprofAPI.GET(“/block”, gin.WrapH(pprof.Handler(“block”)))
pprofAPI.GET(“/goroutine”, gin.WrapH(pprof.Handler(“goroutine”)))
pprofAPI.GET(“/heap”, gin.WrapH(pprof.Handler(“heap”)))
pprofAPI.GET(“/mutex”, gin.WrapH(pprof.Handler(“mutex”)))
pprofAPI.GET(“/threadcreate”, gin.WrapH(pprof.Handler(“threadcreate”)))
}
}

2.生成svg
go tool pprof https://api.xxx.com/pprof/heap
在提示中输入命令:web
于是打开了一个可视化的web svg页面。

3.分析
看大线最底下的节点,里面有函数名


周知博客, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用pprof排查Go内存占用OOM原因
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址