cmd: crio: enable remote profiler
This patch also hides the profile under the debug flag as there's runtime cost to enable the profiler. This removes the old way of profiling (CPU) as that's not really needed. Signed-off-by: Antonio Murdaca <runcom@redhat.com>
This commit is contained in:
parent
b01a7719cb
commit
20e11e3b90
1 changed files with 9 additions and 12 deletions
|
@ -3,14 +3,14 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
_ "net/http/pprof"
|
||||
"os"
|
||||
"os/signal"
|
||||
"sort"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"runtime/pprof"
|
||||
|
||||
"github.com/Sirupsen/logrus"
|
||||
"github.com/containers/storage/pkg/reexec"
|
||||
"github.com/kubernetes-incubator/cri-o/server"
|
||||
|
@ -233,9 +233,9 @@ func main() {
|
|||
Name: "cni-plugin-dir",
|
||||
Usage: "CNI plugin binaries directory",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "cpu-profile",
|
||||
Usage: "set the CPU profile file path",
|
||||
cli.BoolFlag{
|
||||
Name: "profile",
|
||||
Usage: "enable pprof remote profiler on localhost:6060",
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -285,13 +285,10 @@ func main() {
|
|||
}
|
||||
|
||||
app.Action = func(c *cli.Context) error {
|
||||
if cp := c.GlobalString("cpu-profile"); cp != "" {
|
||||
f, err := os.Create(cp)
|
||||
if err != nil {
|
||||
return fmt.Errorf("invalid --cpu-profile value %q", err)
|
||||
}
|
||||
_ = pprof.StartCPUProfile(f)
|
||||
defer pprof.StopCPUProfile()
|
||||
if c.GlobalBool("profile") {
|
||||
go func() {
|
||||
http.ListenAndServe("localhost:6060", nil)
|
||||
}()
|
||||
}
|
||||
|
||||
config := c.App.Metadata["config"].(*server.Config)
|
||||
|
|
Loading…
Reference in a new issue