Jak kompresja systemu plików wpływa na wydajność zapisu w domowym NAS?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Kompresja systemu plików może sprawić, że domowy NAS zapisuje szybciej, gdy usuwa więcej pracy związanej z przechowywaniem niż dodaje pracy CPU, ale może też zwiększyć opóźnienie.

Wynik zależy od tego, co NAS przechowuje, jakiego algorytmu i poziomu kompresji używa oraz czy aktywnym wąskim gardłem jest procesor, pula dysków czy synchroniczna ścieżka zapisu. Ten artykuł koncentruje się na przezroczystej kompresji systemu plików — nie na archiwach ZIP czy kompresji SMB — ponieważ każdy działa na innym etapie ścieżki danych.

Główna wymiana: mniej zapisanych bajtów, więcej pracy CPU

Przezroczysta kompresja znajduje się wewnątrz ścieżki zapisu systemu plików. Aplikacje przesyłają dane logiczne, system plików dzieli te dane na rekordy lub zakresy, a silnik kompresji próbuje zakodować każdą jednostkę w mniejszej liczbie bajtów przed alokacją. Gdy się to uda, do puli pamięci trafia mniej bloków. Szczegółowe wyjaśnienie przezroczystej kompresji systemu plików pokazuje, dlaczego rozmiar rekordu, współczynnik kompresji i rozmiar fizycznego bloku wpływają na ilość faktycznie zaoszczędzonego I/O.

Tworzy to wymianę, a nie uniwersalny wzrost prędkości. CPU spędza czas na znajdowaniu powtarzających się wzorców, ale dyski, SSD, warstwa parzystości i magistrala pamięci obsługują mniejszy fizyczny ładunek. Jeśli zaoszczędzony czas urządzenia jest większy niż czas kompresji, widoczna dla aplikacji przepustowość zapisu rośnie. Jeśli CPU był już zajęty lub dane ledwo się kurczą, dodatkowy etap może zwiększyć opóźnienie zapisu, nie usuwając wystarczająco dużo operacji I/O, by to zrekompensować.

Zgłaszana prędkość może być również źle rozumiana. Narzędzie do kopiowania mierzy logiczne bajty przyjęte od klienta, podczas gdy statystyki dysku pokazują fizyczne bajty zapisane po kompresji. NAS może więc raportować 500 MB/s postępu logicznego, podczas gdy jego dyski otrzymują znacznie mniej niż 500 MB/s. Kompresja systemu plików nie zmniejsza automatycznie przychodzącego ruchu SMB; kompresja sieciowa musiałaby działać wcześniej na ścieżce.

Kompresja decyduje o tym, ile pracy związanej z przechowywaniem znika

Kompresja usuwa pracę tylko wtedy, gdy wejście zawiera powtarzalne wzorce. Tekst, logi, kod źródłowy, powtarzające się pola bazy danych i obszary wypełnione zerami często mają wystarczającą redundancję, aby znacznie się skurczyć. JPEG, wideo HEVC, archiwa ZIP i pliki zaszyfrowane już usunęły lub ukryły te wzorce. Związek między redundancją danych a kompresją wyjaśnia, dlaczego dwa równie duże foldery NAS mogą dawać przeciwne wyniki wydajności zapisu.

Domowy NAS rzadko obsługuje jedno jednolite obciążenie, więc użyteczne pytanie nie brzmi, czy kompresja jest szybka w izolacji. Chodzi o to, czy aktywny zestaw danych staje się na tyle mały, aby zmniejszyć najwolniejszą część własnej ścieżki zapisu.

Obciążenie domowego NAS Prawdopodobna kompresowalność Praca przesunięta przez kompresję Prawdopodobny wynik zapisu
Logi, JSON, kod źródłowy i dokumenty Wysoka Wiele bloków pamięci masowej zastąpionych pracą CPU Często wyższa przepustowość logiczna
Obrazy VM i pliki baz danych Zmienna Zera i powtarzające się strony mogą się zmniejszyć; losowe aktualizacje pozostają Zależne od obciążenia i rozmiaru bloku
Zdjęcia RAW i nieskompresowane zasoby projektowe Niska do umiarkowanej Usunięto trochę ruchu dyskowego Niewielki zysk lub wynik neutralny
JPEG, HEVC, MP3 i archiwa ZIP Niska CPU testuje dane, ale usuwa niewiele bajtów Zwykle neutralne lub nieco wolniejsze
Szyfrowane kopie zapasowe i zaszyfrowane wolumeny Bardzo niska po szyfrowaniu Niewiele fizycznego I/O jest eliminowane Nadwyżka CPU jest bardziej widoczna

Kolejność również ma znaczenie. Dane skompresowane przed szyfrowaniem mogą nadal oszczędzać miejsce, ale szyfrogram zwykle wygląda na warstwę systemu plików o wysokiej entropii. Podobnie, rzadki lub częściowo pusty obraz VM może się dobrze kompresować, mimo że system operacyjny w nim przechowuje mieszane treści. Rozszerzenia plików są użytecznymi wskazówkami, ale nie są wiarygodnym pomiarem bloków widzianych przez system plików.

Algorytm i poziom kompresji ustalają współczynnik wymiany CPU–I/O

Szybkie algorytmy preferują niski czas przetwarzania i umiarkowaną redukcję rozmiaru, podczas gdy cięższe algorytmy poświęcają więcej czasu procesora na poszukiwanie lepszego współczynnika. To ta sama granica między szybkością a rozmiarem widoczna w niezależnych porównaniach metod kompresji. W przypadku zawsze włączonego NAS najlepszy współczynnik nie jest automatycznie najlepszą wydajnością zapisu, ponieważ każdy proces zapisu na pierwszym i drugim planie dzieli ten sam procesor.

Poziom kompresji czyni to ograniczenie bardziej szczegółowym. Opublikowane pomiaru poziomów Zstandard pokazują spadek prędkości kompresji wraz ze wzrostem żądanego stopnia, podczas gdy dekompresja pozostaje stosunkowo szybka. To sprawia, że wysoki poziom jest atrakcyjny dla archiwalnych zapisów na bezczynnych urządzeniach, ale potencjalnie zakłócający dla działających baz danych, logów kontenerów lub wielu klientów zapisujących jednocześnie.

Żaden algorytm nie daje uniwersalnego wyniku. Generacja procesora, dostępne rdzenie, przepustowość pamięci, implementacja, rozmiar fragmentu i zestaw danych – wszystko ma znaczenie. Szybki algorytm na niskonapięciowym CPU może nadal być wąskim gardłem za szybkim magazynem NVMe, podczas gdy silniejszy algorytm może pozostać praktycznie bezkosztowy, gdy dominują wolne dyski w tym samym NAS.

Nośnik dysku i wzorzec zapisu przesuwają wąskie gardło

Dyski obrotowe zwykle dają więcej możliwości, by kompresja pomogła, ponieważ każdy usunięty blok unika stosunkowo kosztownej pracy urządzenia. Pula NVMe może wchłonąć znacznie więcej danych, zanim magazyn stanie się ograniczeniem, więc czas CPU na kompresję jest łatwiejszy do wykrycia. Szersza zasada mówi, że praca CPU może zastąpić I/O magazynu, ale lepszy zasób do wykorzystania zależy od rzeczywistej równowagi sprzętowej.

Kształt zapisu również zmienia odpowiedź. Duże asynchroniczne strumienie dają systemowi plików przestrzeń do grupowania i równoległego przetwarzania pracy. Małe, synchroniczne aktualizacje nadal czekają na potwierdzenia trwałości, więc zmniejszenie rozmiaru ładunku może nie usunąć stałej latencji zapisu lub zatwierdzenia dziennika. Implementacje systemów plików kompresują też dane w określonych jednostkach: obecne zachowanie kompresji Btrfs na przykład używa ograniczonych fragmentów, przetwarzania równoległego i reguł specyficznych dla implementacji, które mogą zmieniać wykorzystanie metadanych i latencję zapisu.

Współbieżność dodaje kolejny ogranicznik. Kilka kopii zapasowych, baz danych aplikacji, importów mediów i zapisów kontenerów może łącznie nasycić CPU, nawet gdy każdy strumień działa korzystnie samodzielnie. Kompresję należy więc interpretować w kontekście wąskich gardeł sieci, pamięci, dysku i zadań w tle, zwłaszcza gdy przepustowość spada tylko podczas zaplanowanych zadań lub aktywności wielu użytkowników.

Benchmarki kompresji muszą porównywać pracę logiczną i fizyczną

Benchmark wypełniony zerami lub powtarzającymi się bajtami może sprawić, że skompresowany system plików będzie wydawał się szybszy niż dyski mogłyby kiedykolwiek zapisać. Wynik ten może być matematycznie poprawny dla logicznego obciążenia, ale bezużyteczny dla archiwum zdjęć lub zaszyfrowanej kopii zapasowej. Typowe błędy benchmarków pamięci masowej obejmują wysoce kompresowalne dane testowe, buforowane odczyty, niezapisane zapisy i brak porównania przepustowości aplikacji z aktywnością urządzenia.

Znaczący test domowego NAS używa tego samego sprzętu, zestawu danych, ścieżki klienta i obciążenia w tle z włączoną i wyłączoną kompresją. Rejestruje przepustowość logiczną, ilość bajtów fizycznych na urządzeniu, wykorzystanie CPU, współczynnik kompresji i opóźnienie zapisu. Dla obciążeń synchronicznych lub wieloklientowych bardziej informacyjne jest opóźnienie percentylowe niż pojedyncza wartość MB/s, ponieważ krótkie przestoje mogą być ukryte w wysokiej średniej.

Ostateczna interpretacja jest warunkowa. Jeśli fizyczne zapisy spadają gwałtownie, a CPU pozostaje poniżej nasycenia, kompresja działa jak wzmacniacz przepustowości. Jeśli stosunek pozostaje bliski 1:1, a CPU lub opóźnienie rośnie, to głównie dodatkowa praca. Jeśli sieć jest już wąskim gardłem, pamięć masowa może stać się bardziej efektywna, nie przyspieszając jednak zakończenia kopiowania przez klienta.

Najczęściej zadawane pytania

Czy kompresja systemu plików zawsze spowalnia zapisy na NAS?

Nie. Może zwiększyć logiczną przepustowość zapisu, gdy dane są kompresowalne, a wąskie gardło stanowi pamięć masowa, co pozwala zaoszczędzić I/O przewyższające koszt CPU. Może być neutralna lub wolniejsza przy danych o wysokiej entropii, ograniczonych zasobach CPU, agresywnych poziomach kompresji lub zapisie wrażliwym na opóźnienia.

Które pliki na domowym NAS najbardziej korzystają z kompresji?

Dzienniki, tekst, kod źródłowy, powtarzające się dane strukturalne oraz częściowo puste dyski wirtualne to typowi kandydaci. Już skompresowane media, archiwa i dane zaszyfrowane zwykle dają mniejsze korzyści, chociaż rzeczywisty efekt zależy od zawartości bloków, a nie tylko od nazwy pliku.

Czy kompresja systemu plików może zmniejszyć zużycie SSD?

Może zmniejszyć ilość danych zapisywanych na SSD, gdy bloki dobrze się kompresują, co może obniżyć część obciążenia urządzenia. Nie eliminuje jednak zbierania śmieci na poziomie kontrolera ani amplifikacji zapisu, więc korzyści z trwałości zależą od systemu plików, obciążenia, wolnego miejsca i oprogramowania SSD.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.