+ config: add setting "mem_gc_percentage"

This commit is contained in:
Simon Zolin
2020-09-04 10:25:15 +03:00
parent c822297065
commit 45745943a5
2 changed files with 12 additions and 0 deletions

View File

@@ -47,6 +47,12 @@ type configuration struct {
RlimitNoFile uint `yaml:"rlimit_nofile"` // Maximum number of opened fd's per process (0: default)
DebugPProf bool `yaml:"debug_pprof"` // Enable pprof HTTP server on port 6060
// The value for SetGCPercent.
// SetGCPercent sets the garbage collection target percentage:
// a collection is triggered when the ratio of freshly allocated data
// to live data remaining after the previous collection reaches this percentage.
MemGCPercent uint8 `yaml:"mem_gc_percentage"`
// TTL for a web session (in hours)
// An active session is automatically refreshed once a day.
WebSessionTTLHours uint32 `yaml:"web_session_ttl"`

View File

@@ -13,6 +13,7 @@ import (
"os/signal"
"path/filepath"
"runtime"
"runtime/debug"
"strconv"
"sync"
"syscall"
@@ -209,6 +210,11 @@ func run(args options) {
log.Info("Configuration file is OK")
os.Exit(0)
}
if config.MemGCPercent != 0 {
debug.SetGCPercent(int(config.MemGCPercent))
log.Debug("Set SetGCPercent=%d", config.MemGCPercent)
}
}
// 'clients' module uses 'dnsfilter' module's static data (dnsfilter.BlockedSvcKnown()),