Fio

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

fio (flexible I/O tester) ist ein I/O Performance Benchmarking Tool für Linux und andere Unix Systeme. Autor von fio ist Jens Axboe, Maintainer des Block Layers des Linux Kernels.[1]

Inhaltsverzeichnis

Testfälle

Im folgenden zeigen wir Ihnen beispielhaft einige Testfälle. Wenn Sie mehrere Threads parallel nutzen möchten, nutzen Sie die Optionen --numjobs und --group_reporting.[2] Allgemeine Informationen zu IOPS und Dursatztests finden Sie im Artikel Messen von I/O Performance. Beispieltests mit diesen gezeigten Tests finden Sie im Artikel I/O Performance Vergleich von Festplatten mit SSDs und Fusion-io ioDrive.

Testfall
Maximale Laufzeit pro Test: 60 Sekunden
Lesen (für Schreibtests ändern Sie 'read' auf 'write' beim --rw Parameter -
ACHTUNG: wenn Sie ein Device in /dev/ eintragen werden Daten des Devices überschrieben!)
Testnr.
IOPS Sequential Gesamt fio --filename=/dev/DEVICE --direct=1 --rw=read --bs=512 --size=DEVICESIZE --runtime=60 --name=file1 1
10% Anfang fio --filename=/dev/DEVICE --direct=1 --rw=read --bs=512 --size=DEVICESIZE/10 --runtime=60 --name=file1 2
Random Gesamt fio --filename=/dev/DEVICE --direct=1 --rw=randread --bs=512 --size=DEVICESIZE --runtime=60 --name=file1 3
10% Anfang fio --filename=/dev/DEVICE --direct=1 --rw=randread --bs=512 --size=DEVICESIZE/10 --runtime=60 --name=file1 4
Durchsatz Sequential 5 GByte Anfang fio --filename=/dev/DEVICE --direct=1 --rw=read --bs=1m --size=5G --runtime=60 --name=file1 5
5 GByte Ende fio --filename=/dev/DEVICE --direct=1 --rw=read --bs=1m --size=5G --runtime=60 --offset=OFFSET --name=file1 6
Ganzes Device[3] fio --filename=/dev/DEVICE --direct=1 --rw=read --bs=5G --size=DEVICESIZE --runtime=60 --name=file1 7
Random 5 GByte Anfang fio --filename=/dev/DEVICE --direct=1 --rw=randread --bs=1m --size=5G --runtime=60 --name=file1 8
5 GByte Ende fio --filename=/dev/DEVICE --direct=1 --rw=randread --bs=1m --size=5G --runtime=60 --offset=OFFSET --name=file1 9
Ganzes Device fio --filename=/dev/DEVICE --direct=1 --rw=randread --bs=5G --size=DEVICESIZE --runtime=60 --name=file1 10

Optionen

filename

Mit der Option filename definieren Sie die Testdatei. Sie können hier auch das Device-File eines Block-Devices angeben, um das Block-Device direkt (ohne Einfluss eines Filesystems) zu testen.

direct

direct=1 aktiviert direct I/O (siehe dazu Direct und synchronized I/O unter Linux#O_DIRECT).

sync

sync=1 aktiviert synchronous I/O. Für die meisten I/O Engines bedeuted dies O_SYNC (siehe dazu Direct und synchronized I/O unter Linux#O_SYNC, O_DSYNC, O_RSYNC).

readwrite

readwrite oder rw definiert das I/O Pattern.

Mögliche Werte sind:

blocksize

blocksize oder bs definiert die Blockgröße (Standardwert 4K).

size

size definiert die Gesamtgröße des I/O für diesen Testjob. fio läuft so lange, bis diese Größe transferiert wurde oder die runtime erreicht ist.

numjobs

Anzahl der Prozesse, die den definierten Workload erzeugen (Standardwert 1). Werte >1 erzeugen einen multi-threaded I/O.

runtime

runtime definiert die maximale Laufzeit in Sekunden.

group_reporting

Wenn aktiviert, erzeugt diese Option einen Gruppenbericht bei Tests mit numjobs>1 (anstelle von einzelnen Job Reports).

Weitere Optionen

zero_buffers

zero_buffers=1 füllt die Puffer mit Nullen anstelle von random data (zufälligen Daten).

Diese Option kann die Messergebnisse bei SSDs beeinflussen, falls der SSD Controller versucht Daten zu komprimieren.[4] Zumeist sollen sich aber auch die zufälligen Daten komprimieren lassen, da in der Standardkonfiguration nur ein Puffer zufällig erzeugt wird und dieser dann wiederholend verwendet wird.[5]

Einzelnachweise

  1. siehe /usr/src/linux/MAINTAINERS Datei des aktuellen Linux Kernels, z.B. http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/MAINTAINERS
  2. http://kb.fusionio.com/KB/a29/verifying-linux-system-performance.aspx
  3. Durch die Laufzeitlimitierung sind die Ergebnisse dieses Tests nicht immer repräsentativ. Für eine vollständigen Durchlauf entfernen Sie den runtime Parameter (Achtung: lange Testlaufzeit!)
  4. http://www.spinics.net/lists/fio/msg00467.html
  5. http://www.spinics.net/lists/fio/msg00362.html

Weitere Informationen


Share/Save/Bookmark  Feedback zu diesem Artikel geben
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Kategorien
Drucken/exportieren
Werkzeuge