aboutsummaryrefslogtreecommitdiff
path: root/weed/command
diff options
context:
space:
mode:
Diffstat (limited to 'weed/command')
-rw-r--r--weed/command/mount.go4
-rw-r--r--weed/command/mount_std.go5
2 files changed, 9 insertions, 0 deletions
diff --git a/weed/command/mount.go b/weed/command/mount.go
index aec5fcc3c..e54f1f07f 100644
--- a/weed/command/mount.go
+++ b/weed/command/mount.go
@@ -26,6 +26,8 @@ type MountOptions struct {
uidMap *string
gidMap *string
readOnly *bool
+ debug *bool
+ debugPort *int
}
var (
@@ -57,6 +59,8 @@ func init() {
mountOptions.uidMap = cmdMount.Flag.String("map.uid", "", "map local uid to uid on filer, comma-separated <local_uid>:<filer_uid>")
mountOptions.gidMap = cmdMount.Flag.String("map.gid", "", "map local gid to gid on filer, comma-separated <local_gid>:<filer_gid>")
mountOptions.readOnly = cmdMount.Flag.Bool("readOnly", false, "read only")
+ mountOptions.debug = cmdMount.Flag.Bool("debug", false, "serves runtime profiling data, e.g., http://localhost:<debug.port>/debug/pprof/goroutine?debug=2")
+ mountOptions.debugPort = cmdMount.Flag.Int("debug.port", 6061, "http port for debugging")
mountCpuProfile = cmdMount.Flag.String("cpuprofile", "", "cpu profile output file")
mountMemProfile = cmdMount.Flag.String("memprofile", "", "memory profile output file")
diff --git a/weed/command/mount_std.go b/weed/command/mount_std.go
index aebd04170..8f62b4ec9 100644
--- a/weed/command/mount_std.go
+++ b/weed/command/mount_std.go
@@ -6,6 +6,7 @@ package command
import (
"context"
"fmt"
+ "net/http"
"os"
"os/user"
"path"
@@ -34,6 +35,10 @@ import (
func runMount(cmd *Command, args []string) bool {
+ if *mountOptions.debug {
+ go http.ListenAndServe(fmt.Sprintf(":%d", *mountOptions.debugPort), nil)
+ }
+
grace.SetupProfiling(*mountCpuProfile, *mountMemProfile)
if *mountReadRetryTime < time.Second {
*mountReadRetryTime = time.Second