diff options
Diffstat (limited to 'weed/util/grace/pprof.go')
| -rw-r--r-- | weed/util/grace/pprof.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/weed/util/grace/pprof.go b/weed/util/grace/pprof.go index 14686bfc8..28bf6d553 100644 --- a/weed/util/grace/pprof.go +++ b/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 != "" { |
