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"}))