diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-06-13 16:15:54 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-06-13 16:15:54 -0700 |
| commit | 7225cb4ac541ebd4a77338b5053b9dbd177a8ecd (patch) | |
| tree | 4e1150c4c04f095b0baf64691cca69df8dcb3194 | |
| parent | 28a4a1f8d68e2cc826d8ed4c9bd2d4f25e7c0b10 (diff) | |
| download | seaweedfs-7225cb4ac541ebd4a77338b5053b9dbd177a8ecd.tar.xz seaweedfs-7225cb4ac541ebd4a77338b5053b9dbd177a8ecd.zip | |
add block and mutex profiling
| -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..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 != "" { |
