diff options
author | Clark Williams <williams@redhat.com> | 2015-11-19 14:06:05 -0600 |
---|---|---|
committer | Clark Williams <williams@redhat.com> | 2015-11-19 15:19:04 -0600 |
commit | b377dcd27d58c7809cf6cd1501f138f23f487f60 (patch) | |
tree | 5bfad7b8d21a71faa9b12dc497529ea61d5a5a42 | |
parent | 9c904407e50d320dc09d2749ef0d8e4fb66b9f50 (diff) | |
download | rteval-b377dcd27d58c7809cf6cd1501f138f23f487f60.tar.gz |
hackbench: increase default parameters
setup groups to be 3 times number of cpus per node and increase
both loops and datasize from 100 to 1000
Signed-off-by: Clark Williams <williams@redhat.com>
-rw-r--r-- | rteval/modules/loads/hackbench.py | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/rteval/modules/loads/hackbench.py b/rteval/modules/loads/hackbench.py index efbfdc8..c44b126 100644 --- a/rteval/modules/loads/hackbench.py +++ b/rteval/modules/loads/hackbench.py @@ -67,7 +67,7 @@ class Hackbench(CommandLineLoad): biggest = len(self.cpus[n]) # setup jobs based on the number of cores available per node - self.jobs = biggest + self.jobs = biggest * 3 # figure out if we can use numactl or have to use taskset self.__usenumactl = False @@ -81,12 +81,11 @@ class Hackbench(CommandLineLoad): self.args = ['hackbench', '-P', '-g', str(self.jobs), - '-l', str(self._cfg.setdefault('loops', '100')), - '-s', str(self._cfg.setdefault('datasize', '100')) + '-l', str(self._cfg.setdefault('loops', '1000')), + '-s', str(self._cfg.setdefault('datasize', '1000')) ] self.__err_sleep = 5.0 - def _WorkloadBuild(self): # Nothing to build, so we're basically ready self._setReady() @@ -104,6 +103,7 @@ class Hackbench(CommandLineLoad): self._log(Log.DEBUG, "starting loop (jobs: %d)" % self.jobs) + self.started = False def __starton(self, node): if self.__multinodes: @@ -125,21 +125,29 @@ class Hackbench(CommandLineLoad): if self.shouldStop(): return + # just do this once + if not self.started: + for n in self.nodes: + self.tasks[n] = self.__starton(n) + self.started = True + return + for n in self.nodes: - if not self.tasks.has_key(n) or self.tasks[n].poll() is not None: - try: + try: + if self.tasks[n].poll() is not None: + self.tasks[n].wait() self.tasks[n] = self.__starton(n) - except OSError, e: - if e.errno != errno.ENOMEM: - raise e - # Catch out-of-memory errors and wait a bit to (hopefully) - # ease memory pressure - self._log(Log.DEBUG, "ERROR: %s, sleeping for %f seconds" % (e.strerror, self.__err_sleep)) - time.sleep(self.__err_sleep) - if self.__err_sleep < 60.0: - self.__err_sleep *= 2.0 - if self.__err_sleep > 60.0: - self.__err_sleep = 60.0 + except OSError, e: + if e.errno != errno.ENOMEM: + raise e + # Catch out-of-memory errors and wait a bit to (hopefully) + # ease memory pressure + self._log(Log.DEBUG, "ERROR: %s, sleeping for %f seconds" % (e.strerror, self.__err_sleep)) + time.sleep(self.__err_sleep) + if self.__err_sleep < 60.0: + self.__err_sleep *= 2.0 + if self.__err_sleep > 60.0: + self.__err_sleep = 60.0 def WorkloadAlive(self): |