Proč a jak měřit rychlost disku či paměťové karty?

Rychlost disku má zásadní vliv na rychlost počítače, zejména u aplikací, které potřebují číst a zapisovat data náhodně a často. Protože v Raspberry Pi se standardně místo disku používají lehce vyměnitelné SD karty, změříme si v tomto článku hlavně ty.

Proč?

Mezi kartami stejné třídy existují značné rozdíly, speciálně u operací s malými paměťovými bloky to může být dokonce až o řád. Kupříkladu databázový server s levnou SD kartou pak může být až 100x pomalejší než se standardní SD kartou.

🛒 SD karty samozřejmě nejsou jedinou možností. Jednou z alternativ je např. eMMC paměť 🛒 UUGear RasPiKey. Jak si asi povede ve porovnání s našimi SD kartami?

Jak?

Všechny níže popsané benchmarky můžete jednoduše spustit přímo na svém Raspberry Pi jedním skriptem z repozitáře Raspberry Pi Dramble:

curl https://raw.githubusercontent.com/geerlingguy/raspberry-pi-dramble/master/setup/benchmarks/microsd-benchmarks.sh | sudo bash

hdparm

sudo hdparm -t /dev/mmcblk0

hdparm poskytuje základní hrubou statistiku propustnosti čtení ve vyrovnávací paměti (samotným diskem / zařízením). Změnou paramtru -t na -T můžete otestovat výkon mezipaměti souborového systému OS (ta OS umožňuje dramaticky urychlit určité operace čtení), ale pro naše účely chceme testovat pouze samotné zařízení.

Příprava:

  1. Nainstalujte si hdparm: sudo apt-get install -y hdparm

dd

sudo dd if=/dev/zero of=/home/pi/test bs=8k count=50k conv=fsync; sudo rm -f /home/pi/test

dd jednoduše kopíruje data z jednoho místa (if) na druhé (of). Pokud má váš filesystem dostatečně velkou mezipaměť, bude dd docela mizerný srovnávací test rychlosti. Proto se ujistěte, že za parametr count je dosazena dostatečně vysoká hodnota, která systém donutí k reálnému zápisu dat na disk (např. 50k 8k bloky ~= 400 MB by se už do mezipaměti na microSD kartě v Pi vejít neměly)

iozone

iozone -e -I -a -s 100M -r 4k -i 0 -i 1 -i 2 [-f /path/to/file]

iozone je velmi robustní nástroj pro měření výkonu souborového systému. Provádí celou řadu užitečných testů, které vám podají slušný přehled o výkonu čtení a zápisu pro různé bloky a situace. Speciálně test náhodného přístupu k menším paměťovým blokům je hodně vypovídající, protože řada operací (logování, zápis řádku do ACID databáze, nebo hromadné načítání dat) je přesně taková.

Příprava:

  1. Stáhněte si nejnovější verzi: wget http://www.iozone.org/src/current/iozone3_434.tar
  2. Rozbalte TAR archiv: cat iozone3_434.tar | tar -x
  3. Přejděte do složky src: cd iozone3_434/src/current
  4. Sestavte spustitelný soubor: make linux-arm
  5. Vytvořte ve svém lokální adresáři bin odkaz (symlink) na spustitelný soubor : sudo ln -s /home/pi/iozone_434/src/current/iozone /usr/local/bin/iozone

Naše výsledky

hdparm

dd

Náhodné čtení

Náhodný zápis

Závěr

Jak můžeme vidět, rozdíly mezi 🛒 SD kartami jsou skutečně výrazné. U metod dd a hdparm za nimi eMMC paměť zaostává, ale tento nedostatek vyvažuje rychlostí náhodných operacích, zejména čtení. eMMC paměť 🛒 UUGear RasPiKey tak výrazně zrychlí start systému, načítání aplikací a otevírání souborů.

Napsat komentář