Adding fio2gnuplot tool
fio2gnuplot aims at plotting fio output files into gnuplot traces.
It does work pretty differently from fio_generate_plots as :
- it plots simultaneous traces in 3D graphs
- it plots various histogram to represent min/max/average/stddev of the
series
- it uses a pattern matching mecanism to select the input files
- it have a post-mortem analysis mode to compute global values across
multiple log files
- it saves metadata to report what traces was related to what file
- it generates automatically picture's topic
fio2gnuplot aims at plotting a huge number of simultaneous fio traces in
a understable way. It got tested with up to 197 simultaneous disks traces.
The 3D rendering helps at understanding the "surface" of the benchmark
and answer is fraction of seconds about the homogenity of the results.
The histograms rendering helps at understanding the average values, the
standard deviations between hosts or storage device. By using the
pattern matching, it's really easy to select a set of files to generate
a dedicated graph.
Example:
fio2gnuplot.py -p 'm[1-3]sw[1-3]-*read*para-*iops*' -g
Selected m1sw1-128k-sdb-read-para.results_iops.log
Selected m1sw1-128k-sdc-read-para.results_iops.log
Selected m1sw1-128k-sdd-read-para.results_iops.log
Selected m1sw1-128k-sde-read-para.results_iops.log
Selected m2sw1-128k-sdb-read-para.results_iops.log
Selected m2sw1-128k-sdc-read-para.results_iops.log
Selected m2sw1-128k-sdd-read-para.results_iops.log
Selected m2sw1-128k-sde-read-para.results_iops.log
Running gnuplot Rendering
The previous example shows how to match some iops log file from fio.
In this example, thoses files were generated by genfio.
As a result, the following files will be generated by gnuplot :
m[1-3]sw[1-3]-read-para-iops-3D.png
m[1-3]sw[1-3]-read-para-iops.max.png
m[1-3]sw[1-3]-read-para-iops.png
m[1-3]sw[1-3]-read-para-iops.average.png
m[1-3]sw[1-3]-read-para-iops.min.png
m[1-3]sw[1-3]-read-para-iops.stddev.png
Thoses files will graph all the selected files (traces) at the same time
with various goals (min/max/stddev/average/3D)