aboutsummaryrefslogtreecommitdiff
path: root/weed/util/pprof.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2017-06-22 01:33:58 -0700
committerChris Lu <chris.lu@gmail.com>2017-06-22 01:33:58 -0700
commit1fbb8723dc414dc9b84bbaf84224b6f5829d34de (patch)
tree4e07b790133975429710cdb80b9d34438e5d5fc6 /weed/util/pprof.go
parent2c7dad589dcb7ed513180eb4a743e389f8134a73 (diff)
downloadseaweedfs-1fbb8723dc414dc9b84bbaf84224b6f5829d34de.tar.xz
seaweedfs-1fbb8723dc414dc9b84bbaf84224b6f5829d34de.zip
add cpu and mem pprof
Diffstat (limited to 'weed/util/pprof.go')
-rw-r--r--weed/util/pprof.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/weed/util/pprof.go b/weed/util/pprof.go
new file mode 100644
index 000000000..94bcdb8b3
--- /dev/null
+++ b/weed/util/pprof.go
@@ -0,0 +1,33 @@
+package util
+
+import (
+ "os"
+ "runtime/pprof"
+
+ "github.com/chrislusf/seaweedfs/weed/glog"
+)
+
+func SetupProfiling(cpuProfile, memProfile string) {
+ if cpuProfile != "" {
+ f, err := os.Create(cpuProfile)
+ if err != nil {
+ glog.Fatal(err)
+ }
+ pprof.StartCPUProfile(f)
+ defer pprof.StopCPUProfile()
+ OnInterrupt(func() {
+ pprof.StopCPUProfile()
+ })
+ }
+ if memProfile != "" {
+ f, err := os.Create(memProfile)
+ if err != nil {
+ glog.Fatal(err)
+ }
+ OnInterrupt(func() {
+ pprof.WriteHeapProfile(f)
+ f.Close()
+ })
+ }
+
+}