add master profiling option

This commit is contained in:
Chris Lu 2016-07-03 15:39:57 -07:00
parent d981eb282f
commit b38ff39e8b

View file

@ -4,6 +4,7 @@ import (
"net/http" "net/http"
"os" "os"
"runtime" "runtime"
"runtime/pprof"
"strconv" "strconv"
"strings" "strings"
"time" "time"
@ -42,6 +43,7 @@ var (
garbageThreshold = cmdMaster.Flag.String("garbageThreshold", "0.3", "threshold to vacuum and reclaim spaces") garbageThreshold = cmdMaster.Flag.String("garbageThreshold", "0.3", "threshold to vacuum and reclaim spaces")
masterWhiteListOption = cmdMaster.Flag.String("whiteList", "", "comma separated Ip addresses having write permission. No limit if empty.") masterWhiteListOption = cmdMaster.Flag.String("whiteList", "", "comma separated Ip addresses having write permission. No limit if empty.")
masterSecureKey = cmdMaster.Flag.String("secure.secret", "", "secret to encrypt Json Web Token(JWT)") masterSecureKey = cmdMaster.Flag.String("secure.secret", "", "secret to encrypt Json Web Token(JWT)")
masterCpuProfile = cmdMaster.Flag.String("cpuprofile", "", "cpu profile output file")
masterWhiteList []string masterWhiteList []string
) )
@ -51,6 +53,14 @@ func runMaster(cmd *Command, args []string) bool {
*mMaxCpu = runtime.NumCPU() *mMaxCpu = runtime.NumCPU()
} }
runtime.GOMAXPROCS(*mMaxCpu) runtime.GOMAXPROCS(*mMaxCpu)
if *masterCpuProfile != "" {
f, err := os.Create(*masterCpuProfile)
if err != nil {
glog.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
}
if err := util.TestFolderWritable(*metaFolder); err != nil { if err := util.TestFolderWritable(*metaFolder); err != nil {
glog.Fatalf("Check Meta Folder (-mdir) Writable %s : %s", *metaFolder, err) glog.Fatalf("Check Meta Folder (-mdir) Writable %s : %s", *metaFolder, err)
} }