back to home

louwrentius / fio-plot

Create charts from FIO storage benchmark tool output

466 stars
104 forks
19 issues
PythonShellDockerfile

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing louwrentius/fio-plot in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/louwrentius/fio-plot)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

fio-plot [FIO][fio] is a tool for benchmarking storage devices. FIO helps to assess the storage performance in terms of IOP/s and latency. Fio-plot generates charts from FIO storage benchmark data. It can process FIO output in JSON format. It can also process FIO log file output (in CSV format). It also includes bench-fio, a benchmark tool to automate benchmarking with FIO. Checkout the many examples below. [fio]: https://github.com/axboe/fio ![barchart][2dchartiodepth] To make these charts yourself, you need to follow this process: • Run your tests, maybe use the included benchmark script [bench-fio][bms] • Determine which information you would like to show • Run fio-plot to generate the images with the appropriate command line options [bms]: https://github.com/louwrentius/fio-plot/tree/master/bin Quick installation guide: Ubuntu 18.04+ LTS: please run this command first: apt install zlib1g-dev libjpeg-dev python3-pip All operating systems: pip3 install fio-plot If you want to use the benchmark script bench-fio, make sure to install Fio too. If you don't want to install fio-plot system-wide, you can make a virtual environment like this: cd /desired/path python3 -m venv fio-plot source fio-plot/bin/activate pip3 install fio-plot When you source the virtual environment, fio-plot and bench-fio will be in your executable path. If you want to install from source, you can clone the repository and run python3 setup.py install Configuration command-line vs. INI Fio-plot supports configuration through command-line parameters or using an INI format configuration file. The examples provided in the following sections use command-line parameters. This is how you use an INI configuration file (instead): fio-plot /path/to/fio-plot.ini An example INI is inclued in the fio_plot/templates/fio-plot.ini file. It looks like this: [graphtype] graphtype = bargraph2d_qd [settings] input_directory = /path/to/benchmarkdata output_filename = test.png title = Title subtitle = source = https://louwrentius.com rw = randread type = ... • The fio-plot --help command explains the usage of the parameters available in the INI. • You can't use both the INI file and command-line options, you have to pick one. 2D chart (iodepth) This kind of chart shows both IOPs and Latency for different queue depths. ![barchart][2dchartiodepth] [2dchartiodepth]: https://louwrentius.com/static/images/fio-plot/fioplot0001.png This is the command-line used to generate this graph: fio-plot -i INTEL_D3-S4610 --source "https://louwrentius.com" -T "INTEL D3-S4610 SSD on IBM M1015" -l -r randread 2D chart (numjobs) This kind of chart shows both IOPs and Latency for diffent simultaneous number of jobs. ![barchart][2dchartnumjobs] [2dchartnumjobs]: https://louwrentius.com/static/images/fio-plot/fioplot0002.png This is the command-line used to generate this graph: fio-plot -i INTEL_D3-S4610 --source "https://louwrentius.com" -T "INTEL D3-S4610 SSD on IBM M1015" -N -r randread 2D chart to compare benchmark results The compare chart shows the results from multiple different benchmarks in one graph. The graph data is always for a specific queue depth and numjobs values (the examples use qd=1, nj=1 (the default)). ![barchart][2dchartcompare] [2dchartcompare]: https://louwrentius.com/static/images/fio-plot/fioplot0003.png This is the command-line used to generate this graph: fio-plot -i INTEL_D3-S4610 SAMSUNG_860_PRO KINGSTON_DC500M SAMSUNG_PM883 --source "https://louwrentius.com" -T "Comparing the performance of various Solid State Drives" -C -r randread --xlabel-parent 0 It is also possible to group the bars for IOPs and Latency like this: ![barchart][2dchartcomparegroup] [2dchartcomparegroup]: https://louwrentius.com/static/images/fio-plot/fioplot0004.png This is the command-line used to generate this graph: fio-plot -i INTEL_D3-S4610 SAMSUNG_860_PRO KINGSTON_DC500M SAMSUNG_PM883 --source "https://louwrentius.com" -T "Comparing the performance of various Solid State Drives" -C -r randread --xlabel-parent 0 --group-bars 3D chart A 3D bar chart that plots both queue depth an numjobs against either latency or IOPs. This example shows IOPs. ![3dbarchart][3dbarchartiops] [3dbarchartiops]: https://louwrentius.com/static/images/fio-plot/fioplot0005.png This is the command-line used to generate this graph: fio-plot -i RAID10 --source "https://louwrentius.com" -T "RAID10 performance of 8 x WD Velociraptor 10K RPM" -L -t iops -r randread It is also possible to chart the latency: ![3dbarchart][3dbarchartlat] [3dbarchartlat]: https://louwrentius.com/static/images/fio-plot/fioplot0006.png This is the command-line used to generate this graph: fio-plot -i RAID10 --source "https://louwrentius.com" -T "RAID10 performance of 8 x WD Velociraptor 10K RPM" -L -t lat -r randread Line chart based on FIO log data Fio records a 'performance trace' of various metrics, such as IOPs and latency over time in plain-text .log files. If you use the benchmark tool included with fio-plot, this data is logged every 1 second. This data can be parsed and graphed over time. In this example, we plot the data for four different solid state drives in one chart. ![linechart][linegraph01] [linegraph01]: https://louwrentius.com/static/images/fio-plot/fioplot0012.png This is the command-line used to generate this graph: fio-plot -i INTEL_D3-S4610/ KINGSTON_DC500M/ SAMSUNG_PM883/ SAMSUNG_860_PRO/ --source "https://louwrentius.com" -T "Comparing IOPs performance of multiple SSDs" -g -t iops -r randread --xlabel-parent 0 It is also possible to chart the latency instead of IOPs. ![linechart][linegraph02] [linegraph02]: https://louwrentius.com/static/images/fio-plot/fioplot0013.png This is the command-line used to generate this graph: fio-plot -i INTEL_D3-S4610/ KINGSTON_DC500M/ SAMSUNG_PM883/ SAMSUNG_860_PRO/ --source "https://louwrentius.com" -T "Comparing latency performance of multiple SSDs" -g -t lat -r r…