如何持续分析我的go应用程序?

ss2ws0br  于 2023-09-28  发布在  Go
关注(0)|答案(2)|浏览(90)

我的应用程序有一些内存泄漏,这使得应用程序经常崩溃。所以我开始用pprof分析我的应用程序,但是我只能在我点击url的时候获得配置文件。是否有任何方法可以在某个时间间隔找到配置文件,以便我可以分析应用程序发生了什么?

qnzebej0

qnzebej01#

我希望有一个很酷的标志,以pprof转储异常(如核心转储),但找不到任何东西。在此之前,有两个选择浮现在脑海中:

  • 外部:定期使用cron或其他驱动程序curl pprof
  • 内部:从程序内部定期编写pprof
    外部
$ curl http://localhost:8080/debug/pprof/heap > heap.0.pprof

内部

ticker := time.NewTicker(1 * time.Hour)
go func() {
    for {
       select {
        case <- ticker.C:
if err := pprof.WriteHeapProfile(f); err != nil {
            log.Fatal("could not write memory profile: ", err)
        }

       }
    }
}()

The external curl is a strategy I often take in order to get heap profiles at regular intervals in order to track/compare memory growth

von4xj4u

von4xj4u2#

您可以使用pyroscope https://pyroscope.io/与拉动模型。它不断地抓取应用程序并将分析信息放到UI Jmeter 板中。

相关问题