from numpy import *
from matplotlib.pylab import *
from scipy.stats import *
from scipy import *
import dill
from PBPAR import *
lists_action=lists_action[:,0:2]
options=options_class()
options.export_report = 0
options.report_name = 'trace_analysis.ppt' options.export_report = 0
options.plot_fontsize = 10
options.time_interval = 50
options.plot_figure = 1
options.offset_time = 0
idx=argsort(lists_action[:,0])
lists_cmd=lists_cmd[ix_(list(idx),[0,1,2])]
lists_action=lists_action[ix_(list(idx),[0,1])]
#0 obtain basic information
basic_info=sub_basic_info(lists_action,lists_cmd,options)
### call individual sub-functions
#1 average queue depth
for
completion and arrival
queue_record=sub_queue_depth(lists_action,lists_cmd,options)
#2 calculate the device busy time;
time_record=sub_busy_time(lists_action,options)
#3 average IOPS and throughput of requests
options.time_interval = 1
average_record=sub_iops(lists_action,lists_cmd,options)
options.time_interval = 6
average_record=sub_iops(lists_action,lists_cmd,options)
#4 calculate the
size
distribution req_size_record=sub_size_dist(lists_action,lists_cmd,options)
#5 calculate the LBA/
size
distribution
options.lba_size_set = 50
lba_stat_array=sub_lba_dist(lists_action,lists_cmd,options)
#6 sequential analysis (stream/commands/
size
/queue
length
)
options.near_sequence = 0
options.S2_threshold = 32
options.S2_threshold2 = 64
options.max_stream_length = 1024
options.seq_size_threshold = 1024 sequence_stat=sub_sequence_analysis(lists_action,lists_cmd,options)
options.near_sequence = 1
options.S2_threshold = 32
options.S2_threshold2 = 64
options.max_stream_length = 1024
options.seq_size_threshold = 1024 sequence_stat=sub_sequence_analysis(lists_action,lists_cmd,options)
#7 sequence queue analysis
## sub_sequence_queue(lists_cmd,options)
#8 stack distance analysis - WOW
# options.spec_stack=[10,20,30]; #
for
very large dataset stack_wow_record=sub_stack_wow(lists_cmd,options)
#9 stack distance analysis - ROW stack_row_record=sub_stack_row(lists_cmd,options)
#10 frequented write update ratio – WOW
options.access_type = 0 freq_wow_record=sub_freq_wow(lists_cmd,options)
#11 timed/ordered update ratio – WOW
options.access_type = 0 time_wow_record=sub_time_wow(lists_cmd,options)
#12 seek distance calcuation seek_dist_record=sub_seek_dist(lists_cmd,options)
#13 queue
length
and idle time idle_queue_record=sub_idle_queue(lists_action,options)