2
Im使用gocraft/health来检查我的服务的健康状况并确定每个endPoint的指标。但我有一个问题: CPU开始服务5小时后达到100%我不知道为什么。 不使用“gocraft /健康”它只需0.7%的CPU 的没有人Golang:gocraft/health package 100%CPU
var stream = health.NewStream()
func main() {
// Log to stdout! (can also use WriterSink to write to a log file, Syslog, etc)
stream.AddSink(&health.WriterSink{os.Stdout})
http.HandleFunc("/api/getVastPlayer", vastPlayer)
http.HandleFunc("/static/", func(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, r.URL.Path[1:])
})
log.Println("Listening...")
panic(http.ListenAndServe(":2001", nil))
}
之前,这个包工作;
func vastPlayer(w http.ResponseWriter, r *http.Request) {
job_1 := stream.NewJob("/api/getVastPlayer")
//job_2 := stream.NewJob("/api/html/")
sink := health.NewJsonPollingSink(time.Minute*5, time.Minute*5)
stream.AddSink(sink)
//http://creative.health.spoti.io/health
adr:="127.0.0.1:5001"
sink.StartServer(adr)
......
......
if bol{
job_1.Complete(health.Success)
}
else{
job_1.Complete(health.ValidationError)
}
您使用('bugsnag','statsd'等)下沉?你使用'健康'吗? – lnmx
您是否尝试过配置文件以查看CPU的使用情况? – JimB
免责声明:还没有使用过这个库,但没有检查出源代码。您是否在每个传入的http请求中移除您在vastPlayer处理程序中添加的接收器? “stream”对象似乎遍历所有的Sink实例,并且它似乎在每个请求中都添加了一个接收器。 –