Fio Logs mit fio2gnuplot visualisieren

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

Fio bietet bei Testläufen die Möglichkeit über Log-Dateien die Performance-Werte mit zu protokollieren. Dabei werden in bestimmten Intervallen die erreichten Performance-Werte in eine Datei geschrieben. fio2gnuplot ist ein Skript, welches aus diesen Protokoll-Dateien Graphen generiert. Es kann auch aus mehreren Protokollen vergleichende Graphen erzeugen.

Installation

fio2gnuplot ist seit Fio Version 2.1.2 Teil von Fio.[1] Unter Ubuntu 14.04 LTS alias Trusty befindet sich Fio 2.1.3 in den Repos. Das Package gnuplot wird zum Erzeugen der Graphen ebenfalls installiert:

$ sudo apt-get install fio gnuplot
[...]
Setting up fio (2.1.3-1) ...
Setting up gnuplot (4.6.4-2) ...
$ dpkg -L fio|grep fio2gnuplot
/usr/share/man/man1/fio2gnuplot.1.gz
/usr/bin/fio2gnuplot

Fio Logs erzeugen

Um mit Fio die Log-Dateien zu erzeugen, werden folgende Optionen verwendet:

  • write_bw_log
  • write_iops_log
  • write_lat_log

Im Artikel Fio Grundlagen finden Sie weitere Hinweise zu den Fio-Optionen. In einer Job-Datei werden die Optionen wie folgt angegeben:

[seq-read]
rw=read
write_bw_log=seq-read
stonewall

Nach dem Testlauf schreibt Fio die Log-Dateien:

$ head seq-read_bw.log 
502, 20908, 0, 65536
1004, 21673, 0, 65536
1512, 8583, 0, 65536
2014, 16191, 0, 65536
2522, 25952, 0, 65536

Diese Datei wird fio2gnuplot als Input dienen. Zum Vergleichen von mehreren Testläufen verwenden Sie die Log-Dateien der jeweiligen Tests für fio2gnuplot gemeinsam als Input.

Graphen erzeugen

Die Hilfe von fio2gnuplot lieferte erste Informationen für die Verwendung:[2]

$ fio2gnuplot -h
fio2gnuplot -ghbiodvk -t <title> -o <outputfile> -p <pattern> -G <type> -m <time> -M <time>
-h --help                           : Print this help
-p <pattern> or --pattern <pattern> : A pattern in regexp to select fio input files
-b           or --bandwidth         : A predefined pattern for selecting *_bw.log files
-i           or --iops              : A predefined pattern for selecting *_iops.log files
-g           or --gnuplot           : Render gnuplot traces before exiting

Im folgenden Beispiel werden zwei Log-Dateien zum Vergleich mit fio2gnuplot verwendet:

$ ls *seq-read_bw.log
512K-seq-read_bw.log  default-seq-read_bw.log
$ fio2gnuplot -p '*seq-read_bw.log' -g
2 files Selected with pattern '*seq-read_bw.log'
 |-> 512K-seq-read_bw.log
 |-> default-seq-read_bw.log
Running gnuplot Rendering
Rendering traces are available in the current directory

Daraufhin wurden folgende Graphen im aktuellen Verzeichnis erzeugt:

$ ls *.png
512K-seq-read_bw-2Draw.png     compare-seq-read_bw-2Dsmooth.png  default-seq-read_bw-2Dtrend.png  seq-read_bw.min.png
512K-seq-read_bw-2Dsmooth.png  compare-seq-read_bw-2Dtrend.png   seq-read_bw-3D.png               seq-read_bw.png
512K-seq-read_bw-2Dtrend.png   default-seq-read_bw-2Draw.png     seq-read_bw.average.png          seq-read_bw.stddev.png
compare-seq-read_bw-2Draw.png  default-seq-read_bw-2Dsmooth.png  seq-read_bw.max.png

Einzelnachweise

  1. Fio 2.1.2 released (spinics.net)
  2. fio2gnuplot man page (manpages.ubuntu.com)


Foto Georg Schönberger.jpg

Autor: Georg Schönberger

Georg Schönberger, Abteilung DevOps bei der XORTEX eBusiness GmbH, absolvierte an der FH OÖ am Campus Hagenberg sein Studium zum Bachelor Computer- und Mediensicherheit, Studium Master Sichere Informationssysteme. Seit 2015 ist Georg bei XORTEX beschäftigt und arbeitet sehr lösungsorientiert und hat keine Angst vor schwierigen Aufgaben. Zu seinen Hobbys zählt neben Linux auch Tennis, Klettern und Reisen.


Das könnte Sie auch interessieren

Balkendiagramme aus Fio Logs
Fio
Fio kompilieren