From a7fed5ac1b9f6907a136b51c7133fd7954eb75b2 Mon Sep 17 00:00:00 2001 From: Lars Kluge Date: Wed, 23 Nov 2016 18:20:08 +0100 Subject: [PATCH] foo --- actions.go | 16 ++++++++++++++++ main.go | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/actions.go b/actions.go index 263db38..c0c3a2a 100644 --- a/actions.go +++ b/actions.go @@ -8,6 +8,7 @@ import ( "io/ioutil" "os" "os/exec" + "runtime" "strings" "syscall" "time" @@ -24,6 +25,12 @@ func IO(req *pbm.BinRequest, maxReplySize int) (*pbm.BinReply, error) { start := time.Now() res := pbm.BinReply{Id: req.Id, Module: req.Module, Exitcode: 0} + // measure mem alloc + var m runtime.MemStats + runtime.GC() + runtime.ReadMemStats(&m) + startAlloc := m.Alloc + l := log.WithFields(log.Fields{"rid": FmtRid(req.Id)}) done := make(chan bool, 1) @@ -64,6 +71,7 @@ func IO(req *pbm.BinRequest, maxReplySize int) (*pbm.BinReply, error) { l.WithError(err).Error("cmd.StdinPipe") } stdout, err := cmd.StdoutPipe() + defer stdout.Close() if err != nil { l.WithError(err).Error("cmd.StdoutPipe") } @@ -192,6 +200,14 @@ func IO(req *pbm.BinRequest, maxReplySize int) (*pbm.BinReply, error) { case <-time.After(CommandTimeout + 15*time.Second): l.Fatal("Something went terribly wrong") } + + res.Stdout = []byte{} + + runtime.GC() + runtime.ReadMemStats(&m) + allocDiff := m.Alloc - startAlloc + log.WithFields(log.Fields{"# goroutines": runtime.NumGoroutine(), "alloc total": m.Alloc, "alloc diff": allocDiff}).Warn("Stats..") + return &res, nil } diff --git a/main.go b/main.go index ac253e1..e43be78 100644 --- a/main.go +++ b/main.go @@ -12,7 +12,7 @@ import ( ) const ( - Version = "0.7.6" + Version = "0.7.7" clientID = "babl-server" MaxKafkaMessageSize = 1024 * 100 // 100kb