benchmark_config = self.config.get('benchmarks')
benchmark_type = next(iter(benchmark_config.keys()))
+
if benchmark_type in ['librbdfio', 'fio']:
testdir = misc.get_testdir(self.ctx)
benchmark_config[benchmark_type]['cmd_path'] = os.path.join(testdir, 'fio/fio')
- if benchmark_type == 'cosbench':
- # create cosbench_dir and cosbench_xml_dir
- testdir = misc.get_testdir(self.ctx)
- benchmark_config['cosbench']['cosbench_dir'] = os.path.join(testdir, 'cos')
- benchmark_config['cosbench']['cosbench_xml_dir'] = os.path.join(testdir, 'xml')
- self.ctx.cluster.run(args=['mkdir', '-p', '-m0755', '--', benchmark_config['cosbench']['cosbench_xml_dir']])
- benchmark_config['cosbench']['controller'] = osd_hosts[0]
-
- # set auth details
- remotes_and_roles = self.ctx.cluster.remotes.items()
- ips = [host for (host, port) in
- (remote.ssh.get_transport().getpeername() for (remote, role_list) in remotes_and_roles)]
- benchmark_config['cosbench']['auth'] = "username=cosbench:operator;password=intel2012;url=http://%s:80/auth/v1.0;retry=9" %(ips[0])
+
client_endpoints_config = self.config.get('client_endpoints', None)
monitoring_profiles = self.config.get('monitoring_profiles', {})
]
)
- if benchmark_type == 'cosbench':
- # install cosbench
- self.log.info('install dependencies for cosbench')
- if system_type == 'rpm':
- cosbench_depends = ['wget', 'unzip', 'java-1.7.0-openjdk', 'curl']
- else:
- cosbench_depends = ['wget', 'unzip', 'openjdk-8-jre', 'curl']
- self.first_mon.run(args=install_cmd + cosbench_depends)
- testdir = misc.get_testdir(self.ctx)
- cosbench_version = '0.4.2.c3'
- cosbench_location = 'https://github.com/intel-cloud/cosbench/releases/download/v0.4.2.c3/0.4.2.c3.zip'
- os_version = misc.get_system_type(self.first_mon, False, True)
-
- # additional requirements for bionic
- if os_version == '18.04':
- self.first_mon.run(
- args=['sudo', 'apt-get', '-y', 'purge', 'openjdk-11*'])
- # use our own version of cosbench
- cosbench_version = 'cosbench-0.4.2.c3.1'
- # contains additional parameter "-N" to nc
- cosbench_location = 'http://drop.ceph.com/qa/cosbench-0.4.2.c3.1.zip'
- cosbench_dir = os.path.join(testdir, cosbench_version)
- self.ctx.cluster.run(args=['mkdir', '-p', '-m0755', '--', cosbench_dir])
- self.first_mon.run(
- args=[
- 'cd', testdir, run.Raw('&&'),
- 'wget',
- cosbench_location, run.Raw('&&'),
- 'unzip', '{name}.zip'.format(name=cosbench_version), '-d', cosbench_version
- ]
- )
- else:
- self.first_mon.run(
- args=[
- 'cd', testdir, run.Raw('&&'),
- 'wget',
- cosbench_location, run.Raw('&&'),
- 'unzip', '{name}.zip'.format(name=cosbench_version)
- ]
- )
- self.first_mon.run(
- args=[
- 'cd', testdir, run.Raw('&&'),
- 'ln', '-s', cosbench_version, 'cos',
- ]
- )
- self.first_mon.run(
- args=[
- 'cd', os.path.join(testdir, 'cos'), run.Raw('&&'),
- 'chmod', '+x', run.Raw('*.sh'),
- ]
- )
-
- # start cosbench and check info
- self.log.info('start cosbench')
- self.first_mon.run(
- args=[
- 'cd', testdir, run.Raw('&&'),
- 'cd', 'cos', run.Raw('&&'),
- 'sh', 'start-all.sh'
- ]
- )
- self.log.info('check cosbench info')
- self.first_mon.run(
- args=[
- 'cd', testdir, run.Raw('&&'),
- 'cd', 'cos', run.Raw('&&'),
- 'sh', 'cli.sh', 'info'
- ]
- )
-
def checkout_cbt(self):
testdir = misc.get_testdir(self.ctx)
repo = self.config.get('repo', 'https://github.com/ceph/cbt.git')
]
)
- if benchmark_type == 'cosbench':
- os_version = misc.get_system_type(self.first_mon, False, True)
- if os_version == '18.04':
- cosbench_version = 'cosbench-0.4.2.c3.1'
- else:
- cosbench_version = '0.4.2.c3'
- # note: stop-all requires 'nc'
- self.first_mon.run(
- args=[
- 'cd', testdir, run.Raw('&&'),
- 'cd', 'cos', run.Raw('&&'),
- 'sh', 'stop-all.sh',
- run.Raw('||'), 'true'
- ]
- )
- self.first_mon.run(
- args=[
- 'sudo', 'killall', '-9', 'java',
- run.Raw('||'), 'true'
- ]
- )
- self.first_mon.run(
- args=[
- 'rm', '--one-file-system', '-rf', '--',
- '{tdir}/cos'.format(tdir=testdir),
- ]
- )
- self.first_mon.run(
- args=[
- 'rm', '--one-file-system', '-rf', '--',
- '{tdir}/{version}'.format(tdir=testdir, version=cosbench_version),
- ]
- )
- self.first_mon.run(
- args=[
- 'rm', '--one-file-system', '-rf', '--',
- '{tdir}/{version}.zip'.format(tdir=testdir, version=cosbench_version),
- ]
- )
- self.first_mon.run(
- args=[
- 'rm', '--one-file-system', '-rf', '--',
- '{tdir}/xml'.format(tdir=testdir),
- ]
- )
# Collect cbt performance data
cbt_performance = CBTperformance()
cbt_performance.collect(self.ctx, self.config)