Proč a jak měřit rychlost disku či paměťové karty?
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:
- 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:
- Stáhněte si nejnovější verzi:
wget http://www.iozone.org/src/current/iozone3_434.tar
- Rozbalte TAR archiv:
cat iozone3_434.tar | tar -x
- Přejděte do složky src:
cd iozone3_434/src/current
- Sestavte spustitelný soubor:
make linux-arm
- 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ů.