From fd9c6d2fde726b961b538b4000f8cedb7f77df84 Mon Sep 17 00:00:00 2001 From: Seth Jennings Date: Wed, 4 Oct 2017 22:09:11 -0500 Subject: [PATCH] adaptive longOp for du operation --- container/common/fsHandler.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/container/common/fsHandler.go b/container/common/fsHandler.go index 451395f6..cae0bc4b 100644 --- a/container/common/fsHandler.go +++ b/container/common/fsHandler.go @@ -51,7 +51,6 @@ type realFsHandler struct { } const ( - longOp = time.Second timeout = 2 * time.Minute maxBackoffFactor = 20 ) @@ -111,6 +110,7 @@ func (fh *realFsHandler) update() error { func (fh *realFsHandler) trackUsage() { fh.update() + longOp := time.Second for { select { case <-fh.stopChan: @@ -128,7 +128,11 @@ func (fh *realFsHandler) trackUsage() { } duration := time.Since(start) if duration > longOp { - glog.V(2).Infof("du and find on following dirs took %v: %v", duration, []string{fh.rootfs, fh.extraDir}) + // adapt longOp time so that message doesn't continue to print + // if the long duration is persistent either because of slow + // disk or lots of containers. + longOp = longOp + time.Second + glog.V(2).Infof("du and find on following dirs took %v: %v; will not log again for this container unless duration exceeds %d seconds.", duration, []string{fh.rootfs, fh.extraDir}, longOp) } } }