From 74a5f69be8d60a33e2641ec87a9c7f4d4e489f99 Mon Sep 17 00:00:00 2001 From: frozen <355847+Frozen@users.noreply.github.com> Date: Thu, 2 May 2024 13:17:46 -0400 Subject: [PATCH] pprof for bootnode --- cmd/bootnode/main.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/cmd/bootnode/main.go b/cmd/bootnode/main.go index 92d6674b94..538b53e569 100644 --- a/cmd/bootnode/main.go +++ b/cmd/bootnode/main.go @@ -5,15 +5,16 @@ package main import ( "flag" "fmt" + "net/http" + _ "net/http/pprof" "os" "path" "github.com/ethereum/go-ethereum/log" - net "github.com/libp2p/go-libp2p/core/network" - ma "github.com/multiformats/go-multiaddr" - "github.com/harmony-one/harmony/internal/utils" "github.com/harmony-one/harmony/p2p" + net "github.com/libp2p/go-libp2p/core/network" + ma "github.com/multiformats/go-multiaddr" ) // ConnLogger .. @@ -104,6 +105,12 @@ func main() { maxConnPerIP := flag.Int("max_conn_per_ip", 10, "max connections number for same ip") forceReachabilityPublic := flag.Bool("force_public", false, "forcing the local node to believe it is reachable externally") + pprof := flag.Bool("pprof", false, "enabled pprof") + pprofAddr := flag.String("pprof.addr", "127.0.0.1:6060", "http pprof address") + //keyFile := flag.String("pprof.profile.names", "", "the private key file of the bootnode") + //keyFile := flag.String("pprof.profile.intervals", "600", "the private key file of the bootnode") + //keyFile := flag.String("pprof.profile.intervals", "", "the private key file of the bootnode") + flag.Parse() if *versionFlag { @@ -148,5 +155,10 @@ func main() { host.GetP2PHost().Network().Notify(NewConnLogger(utils.GetLogInstance())) } + if *pprof { + fmt.Printf("starting pprof on http://%s/debug/pprof/\n", *pprofAddr) + http.ListenAndServe(*pprofAddr, nil) + } + select {} }