perf_testing/scripts/read.py (25 lines of code) (raw):

import time import os import sys import json mountpath = sys.argv[1] size = sys.argv[2] blockSize = 8 * 1024 * 1024 fileSize = int(size) * (1024 * 1024 * 1024) bytes_read = 0 t1 = time.time() fd = open(os.path.join(mountpath, "application_"+size+".data"), "rb") t2 = time.time() while bytes_read <= fileSize: data_byte = fd.read(blockSize) bytes_read += len(data_byte) t3 = time.time() fd.close() t4 = time.time() open_time = t2 - t1 close_time = t4 - t3 read_time = t3 - t2 total_time = t4 - t1 read_mbps = ((bytes_read/read_time) * 8)/(1024 * 1024) total_mbps = ((bytes_read/total_time) * 8)/(1024 * 1024) print(json.dumps({"name": "read_" + size + "GB", "open_time": open_time, "read_time": read_time, "close_time": close_time, "total_time": total_time, "read_mbps": read_mbps / 8, "speed": total_mbps / 8, "unit": "MiB/s"}))