Skip to content
This repository was archived by the owner on Jan 7, 2023. It is now read-only.

Commit 855c880

Browse files
committed
ui add sysbench
Signed-off-by: shaoshian <[email protected]> Signed-off-by: root <[email protected]>
1 parent 60f87e1 commit 855c880

File tree

13 files changed

+643
-8
lines changed

13 files changed

+643
-8
lines changed

analyzer/analyzer.py

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,10 @@ def process_data(self):
131131
os.mkdir(self.workpath)
132132

133133
all_node = []
134-
for node in self.cluster["osds"] + self.cluster["client"]:
134+
all_nodes = set(self.cluster["osds"] + self.cluster["client"])
135+
if case_type == "sysbench":
136+
all_nodes = set(self.cluster["vclient"])
137+
for node in all_nodes:
135138
common.printout("LOG","note "+ node + " start analysis")
136139
common.scp(self.cluster["user"],node,remote_file,self.cluster["tmp_dir"])
137140
common.scp(self.cluster["user"],node,remote_file1,self.cluster["tmp_dir"])
@@ -341,7 +344,7 @@ def get_execute_time(self):
341344

342345
def summary_result(self, data):
343346
# generate summary
344-
benchmark_tool = ["fio", "cosbench", "vdbench"]
347+
benchmark_tool = ["fio", "cosbench", "vdbench","sysbench"]
345348
data["summary"]["run_id"] = {}
346349
res = re.search('^(\d+)-(\w+)-(\w+)-(\w+)-(\w+)-(\w+)-(\w+)-(\d+)-(\d+)-(\w+)$',data["session_name"])
347350
if not res:
@@ -471,6 +474,8 @@ def _process_data(self, node_name):
471474
result.update(res)
472475
if 'cosbench' in dir_name:
473476
workload_result.update(self.process_cosbench_data("%s/%s/%s" %(dest_dir, node_name, dir_name), dir_name))
477+
if 'sysbench' in dir_name:
478+
workload_result.update(self.process_sysbench_data("%s/%s/%s" %(dest_dir, node_name, dir_name), node_name, dir_name))
474479
if '_sar.txt' in dir_name:
475480
result.update(self.process_sar_data("%s/%s/%s" % (dest_dir, node_name, dir_name)))
476481
if 'totals.html' in dir_name:
@@ -779,6 +784,40 @@ def process_iostat_data(self, node, path):
779784
result[output]["disk_num"] = disk_num
780785
return result
781786

787+
def process_sysbench_data(self, path,node_name, dirname):
788+
result = {}
789+
sysbench_data = {}
790+
runtime_tmp = path.replace(self.all_conf_data.get("dest_dir"),'').split('/')
791+
while '' in runtime_tmp:
792+
runtime_tmp.remove('')
793+
runtime = runtime_tmp[0].split('-')[-2]
794+
with open(path,"r") as fd:
795+
self.data = fd.readlines()
796+
self.sysbench_data = {}
797+
if len(self.data) != 0:
798+
for i in self.data:
799+
self.line = i.strip('\n').split(':')
800+
while '' in self.line:
801+
self.line.remove('')
802+
if len(self.line) == 2:
803+
self.sysbench_data[self.line[0].strip()] = self.line[1].strip()
804+
output_sysbench_data = OrderedDict()
805+
output_sysbench_data['read_lat'] = '%.3f'%float(self.sysbench_data["avg"].strip("ms"))
806+
output_sysbench_data["read_iops"] = '%.3f'%(int(self.sysbench_data["read"])/int(runtime))
807+
output_sysbench_data["read_bw"] = '0.000'
808+
output_sysbench_data['read_runtime'] = '%.3f'%float(runtime)
809+
output_sysbench_data['write_lat'] = '%.3f'%float(self.sysbench_data["avg"].strip("ms"))
810+
output_sysbench_data["write_iops"] = '%.3f'%(int(self.sysbench_data["write"])/int(runtime))
811+
output_sysbench_data["write_bw"] = '0.000'
812+
output_sysbench_data["99.99%_lat"] = '%.3f'%float(self.sysbench_data["approx. 99 percentile"].strip("ms"))
813+
output_sysbench_data['write_runtime'] = '%.3f'%float(runtime)
814+
output_sysbench_data['lat_unit'] = 'msec'
815+
output_sysbench_data['runtime_unit'] = 'sec'
816+
output_sysbench_data['bw_unit'] = 'MB/s'
817+
result[node_name] = {}
818+
result[node_name]["sysbench"] = output_sysbench_data
819+
return result
820+
782821
def process_vdbench_data(self, path, dirname):
783822
result = {}
784823
vdbench_data = {}

analyzer/analyzer_remote.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,9 @@ def _process_data(self):
361361
if 'cosbench' in dir_name:
362362
self.common.printout("LOG","Processing %s_%s" % (self.whoami, dir_name))
363363
workload_result.update(self.process_cosbench_data("%s/%s" %(dest_dir, dir_name), dir_name))
364+
if 'sysbench' in dir_name:
365+
self.common.printout("LOG","Processing %s_%s" % (self.whoami, dir_name))
366+
workload_result.update(self.process_sysbench_data("%s/%s/%s" %(dest_dir, node_name, dir_name), node_name, dir_name))
364367
if '_sar.txt' in dir_name:
365368
self.common.printout("LOG","Processing %s_%s" % (self.whoami, dir_name))
366369
result.update(self.process_sar_data("%s/%s" % (dest_dir, dir_name)))
@@ -671,6 +674,40 @@ def process_iostat_data(self, node, path):
671674
result[output]["disk_num"] = disk_num
672675
return result
673676

677+
def process_sysbench_data(self, path,node_name, dirname):
678+
result = {}
679+
sysbench_data = {}
680+
runtime_tmp = path.replace(self.all_conf_data.get("dest_dir"),'').split('/')
681+
while '' in runtime_tmp:
682+
runtime_tmp.remove('')
683+
runtime = runtime_tmp[0].split('-')[-2]
684+
with open(path,"r") as fd:
685+
self.data = fd.readlines()
686+
self.sysbench_data = {}
687+
if len(self.data) != 0:
688+
for i in self.data:
689+
self.line = i.strip('\n').split(':')
690+
while '' in self.line:
691+
self.line.remove('')
692+
if len(self.line) == 2:
693+
self.sysbench_data[self.line[0].strip()] = self.line[1].strip()
694+
output_sysbench_data = OrderedDict()
695+
output_sysbench_data['read_lat'] = '%.3f'%float(self.sysbench_data["avg"].strip("ms"))
696+
output_sysbench_data["read_iops"] = '%.3f'%(int(self.sysbench_data["read"])/int(runtime))
697+
output_sysbench_data["read_bw"] = '0.000'
698+
output_sysbench_data['read_runtime'] = '%.3f'%float(runtime)
699+
output_sysbench_data['write_lat'] = '%.3f'%float(self.sysbench_data["avg"].strip("ms"))
700+
output_sysbench_data["write_iops"] = '%.3f'%(int(self.sysbench_data["write"])/int(runtime))
701+
output_sysbench_data["write_bw"] = '0.000'
702+
output_sysbench_data["99.99%_lat"] = '%.3f'%float(self.sysbench_data["approx. 99 percentile"].strip("ms"))
703+
output_sysbench_data['write_runtime'] = '%.3f'%float(runtime)
704+
output_sysbench_data['lat_unit'] = 'msec'
705+
output_sysbench_data['runtime_unit'] = 'sec'
706+
output_sysbench_data['bw_unit'] = 'MB/s'
707+
result[node_name] = {}
708+
result[node_name]["sysbench"] = output_sysbench_data
709+
return result
710+
674711
def process_vdbench_data(self, path, dirname):
675712
result = {}
676713
vdbench_data = {}

benchmarking/mod/bblock/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
__all__ = ['qemurbd', 'fiorbd', 'vdbench']
1+
__all__ = ['qemurbd', 'fiorbd', 'vdbench','sysbench']
22

33

0 commit comments

Comments
 (0)