perf_testing/scripts/write.py (26 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_written = 0
data = os.urandom(blockSize)
t1 = time.time()
fd = open(os.path.join(mountpath, "application_"+size+".data"), "wb")
t2 = time.time()
while bytes_written <= fileSize:
data_byte = fd.write(data)
bytes_written += data_byte
t3 = time.time()
fd.close()
t4 = time.time()
open_time = t2 - t1
close_time = t4 - t3
write_time = t3 - t2
total_time = t4 - t1
write_mbps = ((bytes_written/write_time) * 8)/(1024 * 1024)
total_mbps = ((bytes_written/total_time) * 8)/(1024 * 1024)
print(json.dumps({"name": "write_" + size + "GB", "open_time": open_time, "write_time": write_time, "close_time": close_time, "total_time": total_time, "write_mbps": write_mbps / 8, "speed": total_mbps / 8, "unit": "MiB/s"}))