profiling: higher memory sampling rate

Increase the memory-sampling rate to the same default as
github.com/pkg/profile.  Allow for custom rates by reading
the `MemProfileRate` env variable.

[NO TESTS NEEDED] since it's a dev only flag and not part of CI.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
Valentin Rothberg 2021-08-23 13:48:10 +02:00
parent 2de56a5f41
commit 7b54a5fbe8
1 changed files with 12 additions and 0 deletions

View File

@ -6,6 +6,7 @@ import (
"path/filepath" "path/filepath"
"runtime" "runtime"
"runtime/pprof" "runtime/pprof"
"strconv"
"strings" "strings"
"github.com/containers/common/pkg/completion" "github.com/containers/common/pkg/completion"
@ -194,6 +195,17 @@ func persistentPreRunE(cmd *cobra.Command, args []string) error {
return err return err
} }
} }
if cmd.Flag("memory-profile").Changed {
// Same value as the default in github.com/pkg/profile.
runtime.MemProfileRate = 4096
if rate := os.Getenv("MemProfileRate"); rate != "" {
r, err := strconv.Atoi(rate)
if err != nil {
return err
}
runtime.MemProfileRate = r
}
}
if cfg.MaxWorks <= 0 { if cfg.MaxWorks <= 0 {
return errors.Errorf("maximum workers must be set to a positive number (got %d)", cfg.MaxWorks) return errors.Errorf("maximum workers must be set to a positive number (got %d)", cfg.MaxWorks)