diff options
Diffstat (limited to 'docker/storperf-master/storperf/workloads')
3 files changed, 44 insertions, 21 deletions
diff --git a/docker/storperf-master/storperf/workloads/_base_workload.py b/docker/storperf-master/storperf/workloads/_base_workload.py index c2c7b7b..9b04314 100644 --- a/docker/storperf-master/storperf/workloads/_base_workload.py +++ b/docker/storperf-master/storperf/workloads/_base_workload.py @@ -30,8 +30,9 @@ class _base_workload(object): self.invoker = None self.remote_host = None self.id = None + self.name = self.__class__.__name__ - def execute(self): + def execute(self, parse_only=False): if self.invoker is None: raise ValueError("No invoker has been set") @@ -55,7 +56,10 @@ class _base_workload(object): for key, value in self.options.iteritems(): args.append('--' + key + "=" + value) - self.invoker.execute(args) + if parse_only: + args.append('--parse-only') + + return self.invoker.execute(args) def terminate(self): if self.invoker is not None: @@ -74,11 +78,11 @@ class _base_workload(object): @property def fullname(self): - host_file = self.remote_host+"."+self.filename + host_file = self.remote_host + "." + self.filename host_file = host_file.replace(".", "-").replace("/", "-") return ("%s.%s.queue-depth.%s.block-size.%s.%s" % (str(self.id), - self.__class__.__name__, + self.name, str(self.options['iodepth']), str(self.options['bs']), host_file)) diff --git a/docker/storperf-master/storperf/workloads/_custom_workload.py b/docker/storperf-master/storperf/workloads/_custom_workload.py new file mode 100644 index 0000000..9e0100d --- /dev/null +++ b/docker/storperf-master/storperf/workloads/_custom_workload.py @@ -0,0 +1,36 @@ +############################################################################## +# Copyright (c) 2015 EMC and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +import logging +from storperf.workloads import _base_workload + + +class _custom_workload(_base_workload._base_workload): + + def __init__(self): + self.logger = logging.getLogger(self.__class__.__name__) + self.default_filesize = "1G" + self.filename = '/dev/vdb' + self.fixed_options = { + 'loops': '200', + 'output-format': 'json', + 'status-interval': '60' + } + self.options = { + 'ioengine': 'libaio', + 'direct': '1', + 'numjobs': '1', + 'rw': 'read', + 'bs': '64k', + 'iodepth': '1' + } + self.options.update(self.fixed_options) + self.invoker = None + self.remote_host = None + self.id = None diff --git a/docker/storperf-master/storperf/workloads/_ssd_preconditioning.py b/docker/storperf-master/storperf/workloads/_ssd_preconditioning.py deleted file mode 100644 index cce3c31..0000000 --- a/docker/storperf-master/storperf/workloads/_ssd_preconditioning.py +++ /dev/null @@ -1,17 +0,0 @@ -############################################################################## -# Copyright (c) 2015 EMC and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -from storperf.workloads import _base_workload - - -class _ssd_preconditioning(_base_workload._base_workload): - - def setup(self): - self.options['name'] = 'ssd_preconditioning' - self.options['rw'] = 'randwrite' - self.options['loops'] = '1' |