From 0172f279742c05551d522051b62a9d4bd3d13e5f Mon Sep 17 00:00:00 2001 From: Maciej Wawryk Date: Mon, 16 Mar 2020 13:01:10 +0100 Subject: [PATCH] perf/nvmf: Add more latency measurements Signed-off-by: Maciej Wawryk Change-Id: I1ff5e6440ebef50d0488f020edfd8d5b7e274162 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1281 Reviewed-by: Tomasz Zawadzki Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins --- scripts/perf/nvmf/run_nvmf.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/scripts/perf/nvmf/run_nvmf.py b/scripts/perf/nvmf/run_nvmf.py index 2dbe9de12..5d22e14fe 100755 --- a/scripts/perf/nvmf/run_nvmf.py +++ b/scripts/perf/nvmf/run_nvmf.py @@ -84,11 +84,17 @@ class Target(Server): read_max_lat = float(data["jobs"][job_pos]["read"][lat_key]["max"]) clat_key, clat_unit = get_lat_unit("clat", data["jobs"][job_pos]["read"]) read_p99_lat = float(data["jobs"][job_pos]["read"][clat_key]["percentile"]["99.000000"]) + read_p99.9_lat = float(data["jobs"][job_pos]["read"][clat_key]["percentile"]["99.900000"]) + read_p99.99_lat = float(data["jobs"][job_pos]["read"][clat_key]["percentile"]["99.990000"]) + read_p99.999_lat = float(data["jobs"][job_pos]["read"][clat_key]["percentile"]["99.999000"]) if "ns" in lat_unit: read_avg_lat, read_min_lat, read_max_lat = [x / 1000 for x in [read_avg_lat, read_min_lat, read_max_lat]] if "ns" in clat_unit: read_p99_lat = read_p99_lat / 1000 + read_p99.9_lat = read_p99.9_lat / 1000 + read_p99.99_lat = read_p99.99_lat / 1000 + read_p99.999_lat = read_p99.999_lat / 1000 write_iops = float(data["jobs"][job_pos]["write"]["iops"]) write_bw = float(data["jobs"][job_pos]["write"]["bw"]) @@ -98,14 +104,22 @@ class Target(Server): write_max_lat = float(data["jobs"][job_pos]["write"][lat_key]["max"]) clat_key, clat_unit = get_lat_unit("clat", data["jobs"][job_pos]["write"]) write_p99_lat = float(data["jobs"][job_pos]["write"][clat_key]["percentile"]["99.000000"]) + write_p99.9_lat = float(data["jobs"][job_pos]["write"][clat_key]["percentile"]["99.900000"]) + write_p99.99_lat = float(data["jobs"][job_pos]["write"][clat_key]["percentile"]["99.990000"]) + write_p99.999_lat = float(data["jobs"][job_pos]["write"][clat_key]["percentile"]["99.999000"]) if "ns" in lat_unit: write_avg_lat, write_min_lat, write_max_lat = [x / 1000 for x in [write_avg_lat, write_min_lat, write_max_lat]] if "ns" in clat_unit: write_p99_lat = write_p99_lat / 1000 + write_p99.9_lat = write_p99.9_lat / 1000 + write_p99.99_lat = write_p99.99_lat / 1000 + write_p99.999_lat = write_p99.999_lat / 1000 - return [read_iops, read_bw, read_avg_lat, read_min_lat, read_max_lat, read_p99_lat, - write_iops, write_bw, write_avg_lat, write_min_lat, write_max_lat, write_p99_lat] + return [read_iops, read_bw, read_avg_lat, read_min_lat, read_max_lat, + read_p99_lat, read_p99.9_lat, read_p99.99_lat, read_p99.999_lat, + write_iops, write_bw, write_avg_lat, write_min_lat, write_max_lat, + write_p99_lat, write_p99.9_lat, write_p99.99_lat, write_p99.999_lat] def parse_results(self, results_dir, initiator_count=None, run_num=None): files = os.listdir(results_dir) @@ -118,8 +132,10 @@ class Target(Server): header_line = ",".join(["Name", "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", "write_iops", "write_bw", "write_avg_lat_us", - "write_min_lat_us", "write_max_lat_us", "write_p99_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"]) fh.write(header_line + "\n") rows = set()