Fio

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

fio (flexible I/O tester) jest benchmarkiem wydajności I/O w Linuksie i innych systemach Unix. Autorem fio jest Jens Axboe, Maintainer Block Layers jądra Linuksa.[1]

Studia przypadków

Następnie pokazujemy przykładowe studia przypadków. W przypadku równoczesnego korzystania z kilku threads należy skorzystać z opcji --numjobs i --group_reporting.[2] Ogólne informacje o IOPS i testach przepustowości znajdują się w artykule Pomiar wydajności I/O. Przykłady wskazanych testów znajdują się w artykule Porównanie wydajności pamięci Fusion-io i dysków SSD.

Przypadek
Maks. czas trwania testu: 60 sekund
Odczyt (do testu zapisu należy przy parametrze --rw zmienić 'read' w 'write' ) Numer testu
IOPS Sequential całość fio --filename=/dev/DEVICE --direct=1 --rw=read --bs=512 --size=DEVICESIZE --runtime=60 --name=file1 1
10% początek fio --filename=/dev/DEVICE --direct=1 --rw=read --bs=512 --size=DEVICESIZE/10 --runtime=60 --name=file1 2
Random całość fio --filename=/dev/DEVICE --direct=1 --rw=randread --bs=512 --size=DEVICESIZE --runtime=60 --name=file1 3
10% początek fio --filename=/dev/DEVICE --direct=1 --rw=randread --bs=512 --size=DEVICESIZE/10 --runtime=60 --name=file1 4
przepustowość Sequential 5 GByte początek fio --filename=/dev/DEVICE --direct=1 --rw=read --bs=1m --size=5G --runtime=60 --name=file1 5
5 GByte koniec fio --filename=/dev/DEVICE --direct=1 --rw=read --bs=1m --size=5G --runtime=60 --offset=OFFSET --name=file1 6
kompletne device[3] fio --filename=/dev/DEVICE --direct=1 --rw=read --bs=5G --size=DEVICESIZE --runtime=60 --name=file1 7
Random 5 GByte początek fio --filename=/dev/DEVICE --direct=1 --rw=randread --bs=1m --size=5G --runtime=60 --name=file1 8
5 GByte koniec fio --filename=/dev/DEVICE --direct=1 --rw=randread --bs=1m --size=5G --runtime=60 --offset=OFFSET --name=file1 9
kompletne device fio --filename=/dev/DEVICE --direct=1 --rw=randread --bs=5G --size=DEVICESIZE --runtime=60 --name=file1 10

Opcje

filename

Przez opcje filename definiowany jest plik testowy. Podany może zostać również Device-File, w celu bezpośredniego przetestowania Block-Device (bez wpływu na wynik przez system operacyjny).

direct

direct=1 aktywuje direct I/O (vide Direct i synchronized I/O w Linuksie#O_DIRECT).

sync

sync=1 aktywuje synchronous I/O. Dla większości I/O Engines oznacza to O_SYNC (vide Direct i synchronized I/O w Linuksie#O_SYNC, O_DSYNC, O_RSYNC).

readwrite

readwrite lub rw definiuje I/O Pattern.

Możliwe wartości:

  • read: Sequential reads
  • write: Sequential writes
  • randread: Random reads
  • randwrite: Random writes
  • rw: Mieszane sequential reads i writes
  • randrw: Mieszane random reads i writes

blocksize

blocksize lub bs definiuje wielkość bloku (standardowa wartość 4K).

size

size definiuje wielkość całkowitą I/O danej Testjob. fio pracuje do zakończenia transferu podanej wielkości lub upłynięcia runtime.

numjobs

Ilość procesów, które są tworzone przez zdefiniowany Workload (standardowa wartość 1). Wartości >1 tworzą multi-threaded I/O.

runtime

runtime definiuje maks. czas trwania w sekundach.

group_reporting

Aktywna opcja powoduje generowanie raportu grupowego przy teście z numjobs>1 (zamiast pojedynczych Job Reports).

Dalsze opcje

zero_buffers

zero_buffers=1 zapełnia bufor zerami zamiast random data (losowymi danymi).

Opcja ta może mieć wpływ na wynik pomiaru z dyskami SSD, w przypadku gdy kontroler SSD próbuje kompresować te dane.[4][5]

Odnośniki

  1. vide /usr/src/linux/MAINTAINERS pliki aktualnego jądra Linuksa, np. 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. Przez ograniczenie czasu trwania testu wynik nie jest zawsze poprawny. W celu przeprowadzenia całego testu należy usunąć parametr runtime (Uwaga: długi czas trwania testu!)
  4. http://www.spinics.net/lists/fio/msg00467.html
  5. http://www.spinics.net/lists/fio/msg00362.html

Dalsze informacje

Powiązane artykuły

Klonowanie programem Clonezilla dysku z systemem Windows
Podstawowe informacje o Page Cache w Linuksie
Wyświetlenie i wyłączenie disk cache'u w przeglądarce Firefox