@@ -131,7 +131,10 @@ def process_data(self):
131
131
os .mkdir (self .workpath )
132
132
133
133
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 :
135
138
common .printout ("LOG" ,"note " + node + " start analysis" )
136
139
common .scp (self .cluster ["user" ],node ,remote_file ,self .cluster ["tmp_dir" ])
137
140
common .scp (self .cluster ["user" ],node ,remote_file1 ,self .cluster ["tmp_dir" ])
@@ -341,7 +344,7 @@ def get_execute_time(self):
341
344
342
345
def summary_result (self , data ):
343
346
# generate summary
344
- benchmark_tool = ["fio" , "cosbench" , "vdbench" ]
347
+ benchmark_tool = ["fio" , "cosbench" , "vdbench" , "sysbench" ]
345
348
data ["summary" ]["run_id" ] = {}
346
349
res = re .search ('^(\d+)-(\w+)-(\w+)-(\w+)-(\w+)-(\w+)-(\w+)-(\d+)-(\d+)-(\w+)$' ,data ["session_name" ])
347
350
if not res :
@@ -471,6 +474,8 @@ def _process_data(self, node_name):
471
474
result .update (res )
472
475
if 'cosbench' in dir_name :
473
476
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 ))
474
479
if '_sar.txt' in dir_name :
475
480
result .update (self .process_sar_data ("%s/%s/%s" % (dest_dir , node_name , dir_name )))
476
481
if 'totals.html' in dir_name :
@@ -779,6 +784,40 @@ def process_iostat_data(self, node, path):
779
784
result [output ]["disk_num" ] = disk_num
780
785
return result
781
786
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
+
782
821
def process_vdbench_data (self , path , dirname ):
783
822
result = {}
784
823
vdbench_data = {}
0 commit comments