Browse Source

add block and mutex profiling

pull/2128/head
Chris Lu 4 years ago
parent
commit
7225cb4ac5
  1. 21
      weed/util/grace/pprof.go

21
weed/util/grace/pprof.go

@ -14,9 +14,30 @@ func SetupProfiling(cpuProfile, memProfile string) {
if err != nil {
glog.Fatal(err)
}
runtime.SetBlockProfileRate(1)
runtime.SetMutexProfileFraction(1)
pprof.StartCPUProfile(f)
OnInterrupt(func() {
pprof.StopCPUProfile()
// write block pprof
blockF, err := os.Create(cpuProfile+".block")
if err != nil {
return
}
p := pprof.Lookup("block")
p.WriteTo(blockF,0)
blockF.Close()
// write mutex pprof
mutexF, err := os.Create(cpuProfile+".mutex")
if err != nil {
return
}
p = pprof.Lookup("mutex")
p.WriteTo(mutexF,0)
mutexF.Close()
})
}
if memProfile != "" {

Loading…
Cancel
Save