diff options
Diffstat (limited to 'weed/util')
| -rw-r--r-- | weed/util/constants.go | 2 | ||||
| -rw-r--r-- | weed/util/grace/pprof.go | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/weed/util/constants.go b/weed/util/constants.go index aadc09741..3dfe702ed 100644 --- a/weed/util/constants.go +++ b/weed/util/constants.go @@ -5,7 +5,7 @@ import ( ) var ( - VERSION = fmt.Sprintf("%s %d.%02d", sizeLimit, 2, 52) + VERSION = fmt.Sprintf("%s %d.%02d", sizeLimit, 2, 53) COMMIT = "" ) diff --git a/weed/util/grace/pprof.go b/weed/util/grace/pprof.go index 14686bfc8..0406b762c 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 != "" { |
