ROCKPro64 Armbian RAID5 iozone
In [1]:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sb
import numpy as np
import matplotlib.tri as mtri
In [4]:
def make_charts(filename, title):
data = pd.read_csv(filename, index_col=0)
df=data.unstack().reset_index()
df.columns=["X","Y","Z"]
df['X'] = df['X'].astype(str).astype(int)
df = df.fillna(0)
pivotted= df.pivot('Y','X','Z')
ax = sb.heatmap(pivotted,cmap=plt.cm.afmhot, cbar_kws={'label': 'Transfer Size in KBytes'})
ax.set(xlabel='KBytes per Second', ylabel='File Size in KBytes')
ax.set_title(title, y=1.0)
#ax.figure.set_figwidth(10)
#ax.figure.set_figheight(10)
sb.set_style('whitegrid')
plt.savefig("{}-heatmap.png".format(title.replace(" ", "-")))
fig = plt.figure()
sb.set_style('whitegrid')
fig.set_figheight(10)
fig.set_figwidth(10)
tri = mtri.Triangulation(df['X'], df['Y'])
ax = fig.add_subplot(projection='3d')
ax.plot_trisurf(df['X'], df['Y'], df['Z'], cmap=plt.cm.afmhot, linewidth=0.2, antialiased=True, triangles=tri.triangles)
ax.view_init(20, 20, 0)
ax.set_zlabel('Transfer Size in KBytes')
ax.set_xlabel('KBytes per Second')
ax.set_ylabel('File Size in KBytes')
plt.grid(True)
plt.rcParams['axes.titley'] = 0.95
plt.title(title)
plt.show()
plt.savefig("{}-3D.png".format(title.replace(" ", "-")))
In [6]:
make_charts("./data/rpro64-software-raid-reader.csv", "Read")
make_charts("./data/rpro64-software-raid-writer.csv", "Write")
make_charts("./data/rpro64-software-raid-freader.csv", "fread")
make_charts("./data/rpro64-software-raid-fwriter.csv", "fwrite")
make_charts("./data/rpro64-software-raid-random-reader.csv", "Random_Read")
make_charts("./data/rpro64-software-raid-stride-reader.csv", "Stride_Read")
In [ ]: