in perfkitbenchmarker/linux_benchmarks/cloudsuite_data_serving_benchmark.py [0:0]
def Run(benchmark_spec):
"""Run the data_serving benchmark.
Args:
benchmark_spec: The benchmark specification. Contains all data that is
required to run the benchmark.
Returns:
A list of sample.Sample objects.
"""
server_seed = benchmark_spec.vm_groups['server_seed'][0]
servers = benchmark_spec.vm_groups['servers']
client = benchmark_spec.vm_groups['client'][0]
results = []
server_ips_arr = []
server_ips_arr.append(server_seed.internal_ip)
for vm in servers:
server_ips_arr.append(vm.internal_ip)
server_ips = ','.join(server_ips_arr)
rec_count_cfg = '-e RECORDCOUNT=%d' % FLAGS.cloudsuite_data_serving_rec_count
op_count_cfg = '-e OPERATIONCOUNT=%d' % FLAGS.cloudsuite_data_serving_op_count
benchmark_cmd = (
'sudo docker run %s %s --rm --name cassandra-client'
' --net host cloudsuite/data-serving:client %s'
% (rec_count_cfg, op_count_cfg, server_ips)
)
stdout, _ = client.RemoteCommand(benchmark_cmd)
def GetResults(match_str, result_label, result_metric):
matches = re.findall(match_str, stdout)
if len(matches) != 1:
raise errors.Benchmarks.RunError(
'Expected to find result label: %s' % result_label
)
results.append(
sample.Sample(result_label, float(matches[0]), result_metric)
)
GetResults(r'\[OVERALL\], RunTime\(ms\), (\d+.?\d*)', 'OVERALL RunTime', 'ms')
GetResults(
r'\[OVERALL\], Throughput\(ops\/sec\), (\d+.?\d*)',
'OVERALL Throughput',
'ops/sec',
)
GetResults(
r'\[CLEANUP\], Operations, (\d+.?\d*)', 'CLEANUP Operations', 'ops'
)
GetResults(
r'\[CLEANUP\], AverageLatency\(us\), (\d+.?\d*)',
'CLEANUP AverageLatency',
'us',
)
GetResults(
r'\[CLEANUP\], MinLatency\(us\), (\d+.?\d*)', 'CLEANUP MinLatency', 'us'
)
GetResults(
r'\[CLEANUP\], MaxLatency\(us\), (\d+.?\d*)', 'CLEANUP MaxLatency', 'us'
)
GetResults(
r'\[CLEANUP\], 95thPercentileLatency\(ms\), (\d+.?\d*)',
'CLEANUP 95thPercentileLatency',
'ms',
)
GetResults(
r'\[CLEANUP\], 99thPercentileLatency\(ms\), (\d+.?\d*)',
'CLEANUP 99thPercentileLatency',
'ms',
)
GetResults(r'\[READ\], Operations, (\d+.?\d*)', 'READ Operations', 'ops')
GetResults(
r'\[READ\], AverageLatency\(us\), (\d+.?\d*)', 'READ AverageLatency', 'us'
)
GetResults(r'\[READ\], MinLatency\(us\), (\d+.?\d*)', 'READ MinLatency', 'us')
GetResults(r'\[READ\], MaxLatency\(us\), (\d+.?\d*)', 'READ MaxLatency', 'us')
GetResults(
r'\[READ\], 95thPercentileLatency\(ms\), (\d+.?\d*)',
'READ 95thPercentileLatency',
'ms',
)
GetResults(
r'\[READ\], 99thPercentileLatency\(ms\), (\d+.?\d*)',
'READ 99thPercentileLatency',
'ms',
)
GetResults(r'\[UPDATE\], Operations, (\d+.?\d*)', 'UPDATE Operations', 'us')
GetResults(
r'\[UPDATE\], AverageLatency\(us\), (\d+.?\d*)',
'UPDATE AverageLatency',
'us',
)
GetResults(
r'\[UPDATE\], MinLatency\(us\), (\d+.?\d*)', 'UPDATE MinLatency', 'us'
)
GetResults(
r'\[UPDATE\], MaxLatency\(us\), (\d+.?\d*)', 'UPDATE MaxLatency', 'us'
)
GetResults(
r'\[UPDATE\], 95thPercentileLatency\(ms\), (\d+.?\d*)',
'UPDATE 95thPercentileLatency',
'ms',
)
GetResults(
r'\[UPDATE\], 99thPercentileLatency\(ms\), (\d+.?\d*)',
'UPDATE 99thPercentileLatency',
'ms',
)
return results