如何连续配置我的go应用程序?
我的应用程序有一些内存泄漏,这使得应用程序经常崩溃。因此,我开始使用pprof分析我的应用程序,但我只能在我点击url的实例上获得该配置文件。有没有什么方法可以每隔一段时间找到配置文件,以便我可以分析应用程序发生了什么情况?我希望在异常(如核心转储)时有一个很酷的pprof转储标志,但找不到任何东西。在此之前,我想到了两个选项:如何连续配置我的go应用程序?,go,pprof,Go,Pprof,我的应用程序有一些内存泄漏,这使得应用程序经常崩溃。因此,我开始使用pprof分析我的应用程序,但我只能在我点击url的实例上获得该配置文件。有没有什么方法可以每隔一段时间找到配置文件,以便我可以分析应用程序发生了什么情况?我希望在异常(如核心转储)时有一个很酷的pprof转储标志,但找不到任何东西。在此之前,我想到了两个选项: 外部:定期使用cron或其他驱动程序 内部:从程序内部定期编写pprof 外部 $ curl http://localhost:8080/debug/pprof/h
- 外部:定期使用cron或其他驱动程序
- 内部:从程序内部定期编写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)
}
}
}
}()
内部
$ 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)
}
}
}
}()
ticker:=time.NewTicker(1*time.Hour)
go func(){
为了{
挑选{
案例