diff --git a/src/corso.go b/src/corso.go index 572b0d27b..347e78066 100644 --- a/src/corso.go +++ b/src/corso.go @@ -17,6 +17,7 @@ import ( var profileTicker = time.NewTicker(1 * time.Second) var perMinuteMap = make(map[time.Time]int) +var timeSinceRefresh = time.Now() //var profileTicker = time.NewTicker(120 * time.Second) @@ -25,7 +26,7 @@ var profileCounter = 0 func main() { defer profile.Start(profile.MemProfile).Stop() - debug.SetMemoryLimit(2 * 1024 * 1024 * 1024) + debug.SetMemoryLimit(1 * 1024 * 1024 * 1024) go func() { for { @@ -35,8 +36,9 @@ func main() { runtime.ReadMemStats(&m) // if mem > 3GB and we havent captured a profile this min, capture it + // or if its been 2 mins since last profile, capture it t := time.Now().Truncate(time.Minute) - if m.HeapAlloc > 3*1024*1024*1024 && perMinuteMap[t] == 0 { + if (m.HeapAlloc > uint64(3*1024*1024*1024) && perMinuteMap[t] == 0) || time.Since(timeSinceRefresh) > 2*time.Minute { filename := "mem." + strconv.Itoa(profileCounter) + ".pprof" f, _ := os.Create(filename) @@ -48,6 +50,7 @@ func main() { profileCounter++ perMinuteMap[t] = 1 + timeSinceRefresh = time.Now() } } diff --git a/src/internal/operations/backup.go b/src/internal/operations/backup.go index bec31057a..908680d62 100644 --- a/src/internal/operations/backup.go +++ b/src/internal/operations/backup.go @@ -491,7 +491,7 @@ func (op *BackupOperation) do( // Sleep for 4 mins to let the memory usage settle down so that we have a better // picture. Also allows pprof to run twice during this time. - // time.Sleep(4 * time.Minute) + time.Sleep(3 * time.Minute) } return nil, clues.New("failed")