mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-09-19 20:57:57 +08:00
add block and mutex profiling
This commit is contained in:
@@ -14,9 +14,30 @@ func SetupProfiling(cpuProfile, memProfile string) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Fatal(err)
|
glog.Fatal(err)
|
||||||
}
|
}
|
||||||
|
runtime.SetBlockProfileRate(1)
|
||||||
|
runtime.SetMutexProfileFraction(1)
|
||||||
pprof.StartCPUProfile(f)
|
pprof.StartCPUProfile(f)
|
||||||
OnInterrupt(func() {
|
OnInterrupt(func() {
|
||||||
pprof.StopCPUProfile()
|
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 != "" {
|
if memProfile != "" {
|
||||||
|
Reference in New Issue
Block a user