Projekt HSN – testy wydajności systemów plików

Niniejszym wpisem rozpoczynamy cykl artykułów opisujących interesujące zagadnienia związane z projektem HoneySpider Network. Będą one zawierać charakterystykę problemów, jakie napotkaliśmy przy rozwoju tego klienckiego honeypota, jak również kwestie popularnych ataków na przeglądarki WWW i technik wykorzystywanych przez cyberprzestępców.

Podczas wdrażania modułu HSN o niskim poziomie interakcji (bazującym na robotach emulujących przeglądarki) zaistniała konieczność szybkiego pozbycia się plików ściągniętych przez te roboty. Jak się okazało, kasowanie dziesiątek milionów małych plików rozproszonych po skomplikowanej strukturze katalogów wcale nie jest procesem szybkim – czas takiej operacji przeprowadzonej na systemie plików EXT3 był liczony w godzinach. Stąd zaistniała konieczność przeprowadzenia testów wydajnościowych popularnych systemów plików, których wyniki prezentujemy poniżej.

Rozpatrywaliśmy 5 popularnych systemów plików dostępnych domyślnie w większości dystrybucji linuksowych: EXT3, XFS, ReiserFS, JFS, EXT4Dev. Zaprojektowany test polegał na utworzeniu na partycji z testowanym systemem plików 1 miliona różnej wielkości plików rozproszonych po 1000 katalogów, a następnie zmierzeniu czasu ich kasowania za pomocą polecenia rm. Aby uzyskać powtarzalność testu, na każdym systemie plików tworzona była identyczna struktura plików i katalogów.

W celu upodobnienia takiego zbioru plików do ściągniętych przez roboty stron internetowych, tworzone pliki cechowały się różnym rozmiarem rzędu kilkudziesięciu kB (średnio 37kB). Cała struktura plików miała w sumie rozmiar około 38 GB (w zależności od specyfiki konkretnego systemu plików). Uzyskano następujące czasy kasowania:

  • EXT3: 2667 s
  • XFS: 5345 s
  • ReiserFS: 222 s
  • JFS: 4840 s
  • EXT4Dev: 3764s

Uzyskane wyniki pokazują bardzo wyraźną przewagę ReiserFS pod względem szybkości kasowania, co potwierdza powszechną opinię o dobrych wynikach tego systemu plików przy operacjach na małych plikach (zwłaszcza do 4 kB). Pozostałe systemy plików mają dość zbliżone wyniki (rzędu kilkudziesięciu minut), choć można zauważyć nieco lepsze rezultaty EXT3. Niestety najbardziej obiecujący pod względem wydajności ReiserFS obecnie nie jest już wspierany (o tym dlaczego nie jest już wspierany zainteresowani mogą przeczytać na przykład tutaj).

Nie zdecydowaliśmy się na testy jego następcy, systemu Reiser4, gdyż jest on we wczesnej fazie testowej i nie wszedł jeszcze do stabilnej wersji jądra Linuksa. Dylemat między szybkim lecz niewspieranym ReiserFS a zdecydowanie wolniejszymi pozostałymi systemami plików doprowadził do powstania odmiennej koncepcji – na ściąganą przez roboty zawartość stron internetowych przeznaczona byłaby cała partycja, a czyszczenie odbywałoby się przez ponowne utworzenie wybranego systemu plików (za pomocą mkfs). Taka operacja jest stosunkowo szybka – w zależności od konkretnego systemu plików trwa od kilku do kilkudziesięciu sekund i nie zależy od ilości plików zgromadzonych na partycji.

Tags: , , ,

Comments are closed.