Allow 0 to match steady state and don't terminate the warmup 47/25547/1
authormbeierl <mark.beierl@dell.com>
Tue, 6 Dec 2016 15:54:10 +0000 (10:54 -0500)
committermbeierl <mark.beierl@dell.com>
Tue, 6 Dec 2016 15:54:10 +0000 (10:54 -0500)
Change-Id: I61f8ce4e719e2c2ef7597c0e41aff8c8d79edc2d
Signed-off-by: mbeierl <mark.beierl@dell.com>
storperf/utilities/data_handler.py
storperf/utilities/steady_state.py

index ebf715a..ebc1bfd 100644 (file)
@@ -9,15 +9,14 @@
 
 import logging
 import os
-from time import sleep
-import time
-
 from storperf.db import test_results_db
 from storperf.db.graphite_db import GraphiteDB
 from storperf.utilities import data_treatment as DataTreatment
 from storperf.utilities import dictionary
 from storperf.utilities import math as math
 from storperf.utilities import steady_state as SteadyState
+from time import sleep
+import time
 
 
 class DataHandler(object):
@@ -65,7 +64,9 @@ class DataHandler(object):
             executor.metadata['report_data'] = metrics
             executor.metadata['steady_state'] = steady_state
 
-            if steady_state:
+            workload_name = executor.current_workload.split('.')[1]
+
+            if steady_state and not workload_name.startswith('_'):
                 executor.terminate()
 
     def _lookup_prior_data(self, executor, metric, io_type):
index 0bbe21e..13f609d 100644 (file)
@@ -38,15 +38,15 @@ def steady_state(data_series):
             average_value is not None):
         # Verification of the Steady State conditions following the SNIA
         # definition
-        range_condition = abs(range_value) < 0.20 * abs(average_value)
-        slope_condition = abs(slope_value) < 0.10 * abs(average_value)
+        range_condition = abs(range_value) <= 0.20 * abs(average_value)
+        slope_condition = abs(slope_value) <= 0.10 * abs(average_value)
 
         steady_state = range_condition and slope_condition
 
-        logger.debug("Range %s < %s?" % (abs(range_value),
-                                         (0.20 * abs(average_value))))
-        logger.debug("Slope %s < %s?" % (abs(slope_value),
-                                         (0.10 * abs(average_value))))
+        logger.debug("Range %s <= %s?" % (abs(range_value),
+                                          (0.20 * abs(average_value))))
+        logger.debug("Slope %s <= %s?" % (abs(slope_value),
+                                          (0.10 * abs(average_value))))
         logger.debug("Steady State? %s" % steady_state)
     else:
         steady_state = False