- Žádné nadcházející události
ZFS komprese
Zajímalo mě, kolik se dá díky ZFS a použité kompresi ušetřit. Předmětem není zkoumat zatížení CPU, zkoušet různé druhy zápisu, použitou velikost bloku nebo mód ZFS.
Úvod
A tak jsem si provedl malý test. Měřil jsem, kolik složka zabírá bez komprese, s defaultní kompresí lzjb (někde jsem se dočetl, že odpovídá GZIP levelu 7) a s maximální kompresí GZIP level 9.
Test jsem provedl na bězném PC s dostatkem paměti a postarším funkčním IDE diskem.
Postup
Vytvořil jsem si nový pool a v něm další tři s příslušnou kompresí.
# zfs create rpool/test # zfs create -o compress=off rpool/test/off # zfs create -o compress=on rpool/test/lzjb # zfs create -o compress=gzip-9 rpool/test/gzip
Jako vzorek testovacích dat jsem použil zdrojové kódy Linux kernelu.
# wget -O /tmp/linux-2.6.31.5.tar.bz2 http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.5.tar.bz2
Data jsem poté rozkopíroval do jednotlivých poolu.
# for pool in off lzjb gzip; do tar -xjf /tmp/linux-2.6.31.5.tar.bz2 -C /rpool/test/$pool/; done
Výsledek?
# du -sh /rpool/test/* 113M /rpool/test/gzip 205M /rpool/test/lzjb 363M /rpool/test/off
Díky kompresi se 363MB smrsklo na 113MB při kompresním poměru 3.49.
# zfs get -r compressratio rpool/test NAME PROPERTY VALUE SOURCE rpool/test compressratio 1.63x - rpool/test/gzip compressratio 3.49x - rpool/test/lzjb compressratio 1.82x - rpool/test/off compressratio 1.00x -
Vliv komprese na rychlost dat
Další zajímavostí je to, že i když systém musí počítat kompresi, paradoxně to zvyšuje jak rychlost čtení, tak zápisu. Je tomu tak protože čas potřebný na kompresi a dekompresi dat je díky procesoru kratší než čas potřebný na čtení a zápis nekomprimovaných dat z/na disk.
Statistiky
Původně jsem chtěl udělat malý test čtení a zápisu s kompresí i bez ale nakonec jsem od toho upustil. Nejsem si jistý jak relevantní by byl můj test s použitým dd if=/dev/urandom of=/rpool/test/..., a tak jsem nakonec naměřená data nepoužil. Ono vymyslet nějaký jednoduchý test je docela věda. Ale třeba na to někdy dojde. Na konci článku jsou i nějaké odkazy, které se tímto snaží zabývat.
Závěr
Funguje to. :-) V dalším kole bych test rád opakoval se zapnutou deduplikací. To by mohlo přinést další razantní úsporu místa. Inu, uvidíme.






