Profiling: Add base, fix memory profiling (#8850)

For 'snapshot' type profiles, record a 'before' profile that can be used 
as `go tool pprof -base=before ...` to compare before and after.

"Before" profiles are included in the zipped package.

[`runtime.MemProfileRate`](https://golang.org/pkg/runtime/#pkg-variables) 
should not be updated while the application is running, so we set it at startup.

Co-authored-by: Harshavardhana <harsha@minio.io>
This commit is contained in:
Klaus Post
2020-01-22 00:49:25 +01:00
committed by Harshavardhana
parent f14f60a487
commit c7178d2066
4 changed files with 61 additions and 20 deletions

View File

@@ -33,11 +33,12 @@ type ProfilerType string
// Different supported profiler types.
const (
ProfilerCPU ProfilerType = "cpu" // represents CPU profiler type
ProfilerMEM = "mem" // represents MEM profiler type
ProfilerBlock = "block" // represents Block profiler type
ProfilerMutex = "mutex" // represents Mutex profiler type
ProfilerTrace = "trace" // represents Trace profiler type
ProfilerCPU ProfilerType = "cpu" // represents CPU profiler type
ProfilerMEM ProfilerType = "mem" // represents MEM profiler type
ProfilerBlock ProfilerType = "block" // represents Block profiler type
ProfilerMutex ProfilerType = "mutex" // represents Mutex profiler type
ProfilerTrace ProfilerType = "trace" // represents Trace profiler type
ProfilerThreads ProfilerType = "threads" // represents ThreadCreate profiler type
)
// StartProfilingResult holds the result of starting