Linux 7.4 przyspiesza FAT32. Kolejna optymalizacja przynosi duży wzrost wydajności

Aktualności Oprogramowanie Obserwuj nas w Google

Linux 7.4 przyspiesza FAT32. Kolejna optymalizacja przynosi duży wzrost wydajności

Linux 7.4 otrzymał poprawki związane z plikami FAT32. To kolejne poprawki w tym zakresie, a ostatnie zapewniły nawet 256-krotne przyspieszenie. Tym razem usprawniono sposób rozszerzania plików, ograniczając liczbę operacji potrzebnych do przydzielania miejsca na nośniku.

Za najnowszą optymalizację odpowiada Matheus Alves de Almeida, programista rozwijający otwartoźródłowy sterownik FAT w Linuxie. Jego poprawka została włączona do zestawu zmian non-MM przygotowanych dla Linux 7.4-rc2.

FAT32 otrzymuje kolejne usprawnienie

Problem dotyczył funkcji fat_cont_expand(), wykorzystywanej podczas powiększania plików. Dotychczas przydzielanie nowych klastrów odbywało się za pośrednictwem ogólnej funkcji generic_cont_expand_simple().

Linux 7.4 otrzymał poprawki związane z plikami FAT32. To kolejne poprawki w tym zakresie, a ostatnie zapewniły nawet 256-krotne przyspieszenie.

Linux

Takie rozwiązanie prowadziło do wykonywania wielu niewielkich operacji alokacji, które negatywnie wpływały na wydajność, szczególnie przy małych rozmiarach klastrów. Nowa implementacja przydziela potrzebne miejsce z wyprzedzeniem. Wprowadzono funkcję pomocniczą fat_preallocate(), wykorzystywaną zarówno podczas rozszerzania plików, jak i przez fat_fallocate() z flagą FALLOC_FL_KEEP_SIZE.

Zastosowano również funkcję fat_cont_expand_simple() przygotowaną specjalnie dla FAT. Pozwala ona uniknąć ponownego sprawdzania rozmiaru pliku po przydzieleniu klastrów.

Największe korzyści przy małych klastrach

Jak wynika z testów przeprowadzonych w QEMU zmiana przynosi szczególnie duże przyspieszenie na partycjach FAT32 montowanych w trybie synchronicznym. Największe różnice widać w konfiguracjach wykorzystujących niewielkie klastry.

Linux 7.4 otrzymuje także poprawki stabilności

Pakiet zmian dla Linux 7.4-rc2 obejmuje również inne systemy plików. Najwięcej poprawek dotyczy OCFS2, w którym rozwiązano problemy z uszkodzonymi atrybutami oraz błędami jądra. Usunięto także awarie związane z konfiguracją klastrów, migracją blokad, odzyskiwaniem danych i odmontowywaniem systemu plików. Poprawiono ponadto sprawdzanie zakresu przenoszonych ekstentów.

W sterowniku FAT naprawiono również błędne przechodzenie systemu plików w tryb tylko do odczytu po nieudanym zapisie oraz nieprawidłowe liczniki dowiązań katalogów po zmianie nazwy. Dodatkowo wyeliminowano możliwość odczytu danych poza wyznaczonym zakresem podczas tworzenia komunikatów diagnostycznych. Wprowadzono też poprawki kompilacji dla OpenRISC i Clang 24.

Pokaż / Dodaj komentarze do:

Linux 7.4 przyspiesza FAT32. Kolejna optymalizacja przynosi duży wzrost wydajności
 0