Hlavní navigace

Až 10× rychlejší ZFS ve FreeBSD

Sdílet

David Ježek 31. 10. 2019
FreeBSD logo Autor: FreeBSD

Vývojář Alex Motin z firmy iXsystems, jež je známá masivní podporou a využíváním projektu FreeBSD, přišel s optimalizací ZFS subsystému, která vyúsťuje v až desetinásobný výkon.

Optimalizace se děje ve zpětných voláních ZFS zlib zalloc/zfree. Alex popisuje úpravu tak, že si všiml, že v předchozím kódu pocházejícím z OpenSolarisu je nutné, aby byla známá velikost alokace před uvolněním paměti. To vede k nutnosti uchovávat dodatečnou 8B hlavičku. Ale zlib s aktuálním nastavením alokuje 64kB buffery pro každé volání, což lze efektivně cachovat v UMA – přidání oněch dodatečných 8 bajtů vede k nutné alokaci na fyzické RAM, což znamená velkou ztrátu. A jelikož FreeBSD free() nemá parametr velikosti, přepnutí na něj ztrátu řeší. Nárůst výkonu pro ZVOL(y) s 4kB velikostmi bloku a kompresí Gzip na Alexově testovacím 40vláknovém systému vede k nárůstu výkonu z 60 na 600 MB/s.

Našli jste v článku chybu?
  • Aktualita je stará, nové názory již nelze přidávat.