perf/nvmf: sum results from all test initiators properly
Test result IOPS and BW are a sum from across all initiators, but latencies should be an average from accross initiators. In previous version it was mistakenly a sum, and that had to be manually handled in Excel spreadsheets when gathering data for performance reports. Signed-off-by: Karol Latecki <karol.latecki@intel.com> Change-Id: I17e38e3cdd593dcda9730c19decc2d6a72a11130 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3067 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Maciej Wawryk <maciejx.wawryk@intel.com>
This commit is contained in:
parent
baa1f8a4a1
commit
9228dd5dd7
@ -14,6 +14,7 @@ import uuid
|
|||||||
import rpc
|
import rpc
|
||||||
import rpc.client
|
import rpc.client
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
from collections import OrderedDict
|
||||||
from common import *
|
from common import *
|
||||||
|
|
||||||
|
|
||||||
@ -126,11 +127,12 @@ class Target(Server):
|
|||||||
fio_files = filter(lambda x: ".fio" in x, files)
|
fio_files = filter(lambda x: ".fio" in x, files)
|
||||||
json_files = [x for x in files if ".json" in x]
|
json_files = [x for x in files if ".json" in x]
|
||||||
|
|
||||||
header_line = ",".join(["Name",
|
headers = ["read_iops", "read_bw", "read_avg_lat_us", "read_min_lat_us", "read_max_lat_us",
|
||||||
"read_iops", "read_bw", "read_avg_lat_us", "read_min_lat_us", "read_max_lat_us",
|
"read_p99_lat_us", "read_p99.9_lat_us", "read_p99.99_lat_us", "read_p99.999_lat_us",
|
||||||
"read_p99_lat_us", "read_p99.9_lat_us", "read_p99.99_lat_us", "read_p99.999_lat_us",
|
"write_iops", "write_bw", "write_avg_lat_us", "write_min_lat_us", "write_max_lat_us",
|
||||||
"write_iops", "write_bw", "write_avg_lat_us", "write_min_lat_us", "write_max_lat_us",
|
"write_p99_lat_us", "write_p99.9_lat_us", "write_p99.99_lat_us", "write_p99.999_lat_us"]
|
||||||
"write_p99_lat_us", "write_p99.9_lat_us", "write_p99.99_lat_us", "write_p99.999_lat_us"])
|
|
||||||
|
header_line = ",".join(["Name", *headers])
|
||||||
|
|
||||||
# Create empty results file
|
# Create empty results file
|
||||||
csv_file = "nvmf_results.csv"
|
csv_file = "nvmf_results.csv"
|
||||||
@ -176,11 +178,15 @@ class Target(Server):
|
|||||||
fh.write(header_line + "\n")
|
fh.write(header_line + "\n")
|
||||||
fh.write(",".join([job_name, *["{0:.3f}".format(x) for x in init_results]]) + "\n")
|
fh.write(",".join([job_name, *["{0:.3f}".format(x) for x in init_results]]) + "\n")
|
||||||
|
|
||||||
# Sum average results of all initiators running this FIO job
|
# Sum results of all initiators running this FIO job.
|
||||||
self.log_print("\tTotal results for %s from all initiators" % fio_config)
|
# Latency results are an average of latencies from accros all initiators.
|
||||||
for a in inits_avg_results:
|
inits_avg_results = [sum(x) for x in zip(*inits_avg_results)]
|
||||||
self.log_print(a)
|
inits_avg_results = OrderedDict(zip(headers, inits_avg_results))
|
||||||
total = ["{0:.3f}".format(sum(c)) for c in zip(*inits_avg_results)]
|
for key in inits_avg_results:
|
||||||
|
if "lat" in key:
|
||||||
|
inits_avg_results[key] /= len(inits_names)
|
||||||
|
|
||||||
|
total = ["{0:.3f}".format(x) for x in inits_avg_results.values()]
|
||||||
rows.add(",".join([job_name, *total]))
|
rows.add(",".join([job_name, *total]))
|
||||||
|
|
||||||
# Save results to file
|
# Save results to file
|
||||||
|
Loading…
Reference in New Issue
Block a user