private void doPeriodReport(final boolean period) { if (period && !isTestRunning()) return; long now = now(); int currentCount = nodeTestCount.get(); latencyStats.snapshot(); this.cumulativeLatencyStats.add(latencyStats); if (period) { log.info(""); log.info("------------------ Test Stats -----------------------"); if (configuration.getTestDuration() < 0) { log.info( "Test running for " + Util.formatTimeInSecondsToWords((now - testStartTime) / 1000)); } else { log.info( "Remaining Time: " + Util.formatTimeInSecondsToWords((estimatedTestEndTime - now) / 1000)); } /* ******************************************************* * Node Periodic Stats * *******************************************************/ int periodTestCount = currentCount - testCountAtLastReport; log.info( String.format( "Node: Period iterations/sec = %.1f, completed = %d ", 1000.0 * periodTestCount / (now - lastReportTime), periodTestCount)); log.info("Node: Period latency: " + latencyStats); testCountAtLastReport = currentCount; } /* ******************************************************* * Node Cumulative Stats * *******************************************************/ int writes = test.getWritesCount(); if (writes > 0) { log.info( String.format( "Node: Cumulative iterations/sec = %.1f, completed = %d , writes = %d (%.1f %%)", 1000.0 * currentCount / (now - testStartTime), currentCount, writes, writes * 100.0 / currentCount)); } else { log.info( String.format( "Node: Cumulative iterations/sec = %.1f, completed = %d", 1000.0 * currentCount / (now - testStartTime), currentCount)); } log.info("Node: Cumulative latency: " + cumulativeLatencyStats); latencyStats.reset(); printCacheStats(period); if (testHasErrors) { log.error( "Node: Test has errors. NonstopCacheException: " + nonstopCacheExceptionCount.get()); } lastReportTime = now; }