From 65b6b2341afaa7fb8b843c1e77699c26d11a20ef Mon Sep 17 00:00:00 2001 From: Philipp Mieden Date: Tue, 21 May 2019 11:43:06 +0200 Subject: [PATCH] added free-os-mem flag to contentserver --- contentserver.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/contentserver.go b/contentserver.go index 59643f3..7f1cc79 100644 --- a/contentserver.go +++ b/contentserver.go @@ -4,7 +4,9 @@ import ( "flag" "fmt" "os" + "runtime/debug" "strings" + "time" "github.com/foomo/contentserver/metrics" "github.com/foomo/contentserver/status" @@ -32,6 +34,7 @@ var ( webserverAddress = flag.String("webserver-address", "", "address to bind web server host:port, when empty no webserver will be spawned") webserverPath = flag.String("webserver-path", "/contentserver", "path to export the webserver on - useful when behind a proxy") varDir = flag.String("var-dir", "/var/lib/contentserver", "where to put my data") + flagFreeOSMem = flag.Int("free-os-mem", 0, "free OS mem every X minutes") logLevelOptions = []string{ logLevelError, logLevelRecord, @@ -57,10 +60,22 @@ func exitUsage(code int) { func main() { flag.Parse() + if *showVersionFlag { fmt.Printf("%v\n", uniqushPushVersion) return } + + if *flagFreeOSMem > 0 { + log.Notice("[INFO] freeing OS memory every ", *flagFreeOSMem, " minutes!") + go func() { + for _ = range time.After(time.Duration(*flagFreeOSMem) * time.Minute) { + log.Notice("FreeOSMemory") + debug.FreeOSMemory() + } + }() + } + if len(flag.Args()) == 1 { fmt.Println(*address, flag.Arg(0)) level := log.LevelRecord