Return-Path: X-Original-To: apmail-accumulo-commits-archive@www.apache.org Delivered-To: apmail-accumulo-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4396211817 for ; Thu, 28 Aug 2014 01:46:02 +0000 (UTC) Received: (qmail 21389 invoked by uid 500); 28 Aug 2014 01:46:02 -0000 Delivered-To: apmail-accumulo-commits-archive@accumulo.apache.org Received: (qmail 21277 invoked by uid 500); 28 Aug 2014 01:46:02 -0000 Mailing-List: contact commits-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@accumulo.apache.org Delivered-To: mailing list commits@accumulo.apache.org Received: (qmail 21259 invoked by uid 99); 28 Aug 2014 01:46:02 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Aug 2014 01:46:02 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id B5848A019DF; Thu, 28 Aug 2014 01:46:01 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: elserj@apache.org To: commits@accumulo.apache.org Date: Thu, 28 Aug 2014 01:46:02 -0000 Message-Id: <04b3ff686b2142b2af4c319d1a54fe31@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [2/9] git commit: ACCUMULO-3084 just warn about long timer delays ACCUMULO-3084 just warn about long timer delays Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/6f2fd4d3 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/6f2fd4d3 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/6f2fd4d3 Branch: refs/heads/master Commit: 6f2fd4d3a54bad464dc3eb0982c4e4e2e5590366 Parents: 30a0ca3 Author: Eric C. Newton Authored: Tue Aug 26 17:17:44 2014 -0400 Committer: Eric C. Newton Committed: Tue Aug 26 17:48:53 2014 -0400 ---------------------------------------------------------------------- .../accumulo/server/tabletserver/TabletServer.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/6f2fd4d3/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java b/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java index b9b68bb..1e3e1b1 100644 --- a/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java +++ b/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java @@ -234,9 +234,11 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu private static HashMap prevGcTime = new HashMap(); private static long lastMemorySize = 0; + private static long lastMemoryCheckTime = 0; private static long gcTimeIncreasedCount; private static final long MAX_TIME_TO_WAIT_FOR_SCAN_RESULT_MILLIS = 1000; + private static final long TIME_BETWEEN_GC_CHECKS = 5000; private TabletServerLogger logger; @@ -264,10 +266,12 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu } } } - }, 5000, 5000); + }, TIME_BETWEEN_GC_CHECKS, TIME_BETWEEN_GC_CHECKS); } private synchronized static void logGCInfo(AccumuloConfiguration conf) { + long now = System.currentTimeMillis(); + List gcmBeans = ManagementFactory.getGarbageCollectorMXBeans(); Runtime rt = Runtime.getRuntime(); @@ -322,12 +326,22 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu log.debug(sb.toString()); } + if (lastMemoryCheckTime > 0 && lastMemoryCheckTime < now) { + long diff = now - lastMemoryCheckTime; + if (diff > 2 * TIME_BETWEEN_GC_CHECKS) { + log.warn(String.format("Check for long GC pauses not called in a timely fashion %.1f", diff / 1000.)); + } + lastMemoryCheckTime = now; + return; + } + final long keepAliveTimeout = conf.getTimeInMillis(Property.INSTANCE_ZK_TIMEOUT); if (maxIncreaseInCollectionTime > keepAliveTimeout) { Halt.halt("Garbage collection may be interfering with lock keep-alive. Halting.", -1); } lastMemorySize = mem; + lastMemoryCheckTime = now; } private TabletStatsKeeper statsKeeper;