Linux 7.4 przyspiesza FAT32 nawet 265 razy. Wystarczyło kilka linijek kodu

Aktualności Systemy operacyjne Obserwuj nas w Google

Linux 7.4 przyspiesza FAT32 nawet 265 razy. Wystarczyło kilka linijek kodu

Linux 7.4 otrzymał optymalizację systemu plików FAT32, która w testach pozwoliła uzyskać nawet 265-krotne przyspieszenie wybranych operacji. Zmiana dotyczy sposobu przydzielania miejsca na dane. Choć wydawało się, że nie ma już tutaj czrgo poprawiać, to nawet w dojrzałych rozwiązaniach kilka linijek kodu może przynieść ogromną poprawę wydajności. 

Za optymalizację odpowiada Matheus Alves de Almeida, programista związany z rozwojem otwartego oprogramowania. Jego poprawka modyfikuje sposób działania sterownika FAT podczas wstępnego przydzielania miejsca na pliki.

Mała poprawka, ogromna różnica

Kluczowe znaczenie ma flaga FALLOC_FL_KEEP_SIZE. Pozwala ona zarezerwować przestrzeń na dysku bez zmiany rozmiaru pliku widocznego dla systemu. Pozwala to aplikacjom przygotować miejsce na dane, zanim faktycznie zaczną je zapisywać.

Problem tkwił w sposobie wykonywania alokacji. Dotychczasowa ścieżka kodu mogła realizować wiele operacji przydzielania przestrzeni w obrębie pojedynczego klastra. Nowa wersja pozwala obsłużyć większą liczbę klastrów podczas jednego wywołania.

Zmiana jest niewielka pod względem ilości kodu, ale potrafi znacząco ograniczyć narzut związany z wykonywaniem kolejnych operacji, a różnica w niekótrych scenariuszach jest wyjątkowo duża.

Nawet 265 razy szybciej w testach

Wyniki testów opublikowanych przez autora poprawki wskazują na wyraźne przyspieszenie operacji związanych z FAT32. W najlepszym przypadku wydajność wzrosła nawet 265-krotnie.

Trzeba jednak zachować odpowiednie proporcje. Nie oznacza to, że cały system Linux będzie działał 265 razy szybciej ani że kopiowanie każdego pliku nagle przyspieszy o podobną wartość. Wynik dotyczy konkretnych operacji i warunków testowych związanych z alokacją przestrzeni.

FAT32 to starszy system plików, który nadal pozostaje popularny ze względu na szeroką zgodność z różnymi urządzeniami. Można go spotkać między innymi na nośnikach USB, kartach pamięci i sprzęcie elektronicznym. Każda optymalizacja jego obsługi może więc mieć praktyczne znaczenie, choć skala korzyści będzie zależeć od zastosowania.

Poprawka trafiła do Linuksa 7.4

Optymalizacja została zaakceptowana i włączona do rozwoju jądra Linux 7.4 w ramach zmian niezwiązanych z zarządzaniem pamięcią. Poprawka trafiła do odpowiedniej gałęzi po przesłaniu żądania przez Andrew Mortona.

Pokaż / Dodaj komentarze do:

Linux 7.4 przyspiesza FAT32 nawet 265 razy. Wystarczyło kilka linijek kodu
 0