首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >golang /http/pprof不起作用

golang /http/pprof不起作用
EN

Stack Overflow用户
提问于 2013-12-31 08:26:52
回答 1查看 5.2K关注 0票数 8

我有客户http服务:

代码语言:javascript
复制
    s := &http.Server{
            Addr:         config.Port,
            Handler:      Controller.Log(http.DefaultServeMux),
            ReadTimeout:  3 * time.Second,
            WriteTimeout: 3 * time.Second,
    }

    http.HandleFunc("/exapmle/router/", exampleFunc)

    err := s.ListenAndServe()
    if err != nil {
            log.Critical(err)
            os.Exit(1)
    }

这不管用:

代码语言:javascript
复制
go tool pprof http://localhost:8201/debug/pprof/profile

返回错误:

代码语言:javascript
复制
Failed to fetch http://localhost:8201/debug/pprof/profile?seconds=30

谢谢。

编辑:我认为问题在于我重写了默认的http服务器,net/ http /pprof包注入http处理程序:

代码语言:javascript
复制
func init() {
    http.Handle("/debug/pprof/", http.HandlerFunc(Index))
    http.Handle("/debug/pprof/cmdline", http.HandlerFunc(Cmdline))
    http.Handle("/debug/pprof/profile", http.HandlerFunc(Profile))
    http.Handle("/debug/pprof/symbol", http.HandlerFunc(Symbol))
}

处理程序在我的代码中不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-02 03:22:22

您设置的"WriteTimeout“小于配置文件的写入时间。

在pprof.StartCPUProfile()执行中,它已经开始写,请参见:

  • http://golang.org/src/pkg/runtime/pprof/pprof.go#L565
  • http://golang.org/src/pkg/runtime/pprof/pprof.go#L594

因此,http.WriteTimeout必须大于配置文件的写入时间。

为我糟糕的英语感到抱歉。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20854237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档