blob: 529b78a04d5998d7bba2e46e4312111171243746 [file] [log] [blame]
koder aka kdanilov66839a92015-04-11 13:22:31 +03001import texttable
2
koder aka kdanilovcff7b2e2015-04-18 20:48:15 +03003from wally.utils import ssize_to_b
4from wally.statistic import med_dev
5from wally.suits.io.agent import get_test_summary
koder aka kdanilov66839a92015-04-11 13:22:31 +03006
koder aka kdanilov66839a92015-04-11 13:22:31 +03007
koder aka kdanilov652cd802015-04-13 12:21:07 +03008def key_func(k_data):
9 _, data = k_data
10
koder aka kdanilovcff7b2e2015-04-18 20:48:15 +030011 return (data['rw'],
12 data['sync_mode'],
13 ssize_to_b(data['blocksize']),
14 data['concurence'])
Yulia Portnova7ddfa732015-02-24 17:32:58 +020015
16
koder aka kdanilov66839a92015-04-11 13:22:31 +030017def format_results_for_console(test_set):
koder aka kdanilovcff7b2e2015-04-18 20:48:15 +030018 """
19 create a table with io performance report
20 for console
21 """
koder aka kdanilov66839a92015-04-11 13:22:31 +030022 tab = texttable.Texttable()
koder aka kdanilov652cd802015-04-13 12:21:07 +030023 tab.set_deco(tab.HEADER | tab.VLINES | tab.BORDER)
koder aka kdanilov66839a92015-04-11 13:22:31 +030024 tab.set_cols_align(["l", "r", "r", "r", "r"])
Yulia Portnova7ddfa732015-02-24 17:32:58 +020025
koder aka kdanilov652cd802015-04-13 12:21:07 +030026 prev_k = None
koder aka kdanilovcff7b2e2015-04-18 20:48:15 +030027 items = sorted(test_set['res'].items(), key=key_func)
koder aka kdanilov652cd802015-04-13 12:21:07 +030028
29 for test_name, data in items:
30 curr_k = key_func((test_name, data))[:3]
31
32 if prev_k is not None:
33 if prev_k != curr_k:
koder aka kdanilovcff7b2e2015-04-18 20:48:15 +030034 tab.add_row(["---"] * 5)
koder aka kdanilov652cd802015-04-13 12:21:07 +030035
36 prev_k = curr_k
37
koder aka kdanilov4e9f3ed2015-04-14 11:26:12 +030038 descr = get_test_summary(data)
Yulia Portnova7ddfa732015-02-24 17:32:58 +020039
koder aka kdanilov66839a92015-04-11 13:22:31 +030040 iops, _ = med_dev(data['iops'])
koder aka kdanilov4e9f3ed2015-04-14 11:26:12 +030041 bw, bwdev = med_dev(data['bw'])
Yulia Portnova7ddfa732015-02-24 17:32:58 +020042
koder aka kdanilov66839a92015-04-11 13:22:31 +030043 # 3 * sigma
44 dev_perc = int((bwdev * 300) / bw)
Yulia Portnova7ddfa732015-02-24 17:32:58 +020045
koder aka kdanilov66839a92015-04-11 13:22:31 +030046 params = (descr, int(iops), int(bw), dev_perc,
47 int(med_dev(data['lat'])[0]) // 1000)
koder aka kdanilovcff7b2e2015-04-18 20:48:15 +030048 tab.add_row(params)
Yulia Portnova7ddfa732015-02-24 17:32:58 +020049
koder aka kdanilovcff7b2e2015-04-18 20:48:15 +030050 header = ["Description", "IOPS", "BW KiBps", "Dev * 3 %", "clat ms"]
koder aka kdanilov652cd802015-04-13 12:21:07 +030051 tab.header(header)
Yulia Portnova7ddfa732015-02-24 17:32:58 +020052
koder aka kdanilov66839a92015-04-11 13:22:31 +030053 return tab.draw()