Dziś kolejny post będący efektem testów wydajnościowych dysków SSD. Poprzednio pisałem o tym, jak na wydajność wpływa ilość wolnego miejsca, jakie zostało na dysku SSD. Tym razem napiszę o czymś co, przyznam, mnie samego mocno zaskoczyło. Wpływ jądra na wydajność systemu plików.

Testy zacząłem od uruchomienia platformy na jednym z będących pod ręką pendrive z jakąś „live”  dystrybucją Linuksa. Działał tam stary kernel 2.6.32.28. Wykonałem serię testów systemów  EXT3, EXT4 i XFS. Następnie zainstalowałem na jakimś dysku system z względnie nowym jądrem, 2.6.38.6. Powtórzyłem testy. Wyniki okazały się zaskakujące. W poniższym poście pomijam E XT4, gdyż nie wykonałem dostatecznej ilości powtórzeń testów, aby można go było uczciwie porównać z pozostałymi systemami plików, ale jego ogólne zachowanie jeśli chodzi o wydajność nie odbiegało od tego, co prezentował EXT3. Teraz wyniki:

-                   IOPS
EXT3 2.6.32.28    4,295.16
EXT3 2.6.38.6     6,705.31
XFS 2.6.32.28     6,715.20
XFS 2.6.38.6      6,954.69

IOPS

Wzrost wydajności

Jak widać na załączonych wykresach, w przypadku EXT3 (i z grubsza EXT4) różnica jest ogromna. Kernel 2.6.38.6 okazał się być szybszy od kernela 2.6.32.28 ponad 1,56 raza. To jest przepaść. W przypadku XFS różnica jest minimalna, nowsza wersja jądra zapewnia wydajność o 3,5% większą – to już jest na granicy błędu.

Jaki z powyższego można wyciągnąć wniosek? Po pierwsze, jeśli chcemy poznać wydajność danego rozwiązania, to trzeba testować konfigurację taką, jaka będzie zastosowana w produkcji. Dany, konkretny kontroler, dany konkretny kernel, dana, konkretna ilość danych na dysku.

Po drugie, rozwój jądra następuje. Trzeba go śledzić na bieżąco, bo może się okazać że na takim samym sprzęcie możemy uzyskać znacznie wyższą wydajność zmieniając tylko i wyłącznie kernel.