Wyszukiwanie w witrynie

Użyj Zswap, aby poprawić wydajność na komputerze z systemem Linux z małą ilością pamięci RAM


Spójrzmy prawdzie w oczy, niektórzy z nas nie aktualizują się tak często. Lub przynajmniej jako użytkownicy Linuksa lubimy zmieniać przeznaczenie naszych starszych laptopów/komputerów. Wiele dystrybucji działa bez problemu na systemach z małą ilością pamięci RAM (pamięć o dostępie swobodnym). Przeglądarki nie są jednak tak wybaczające i wymagają coraz więcej pamięci w miarę rozwoju Internetu.

Podczas gdy system ze środowiskiem graficznym LXDE może po uruchomieniu zająć zaledwie 150 MB pamięci RAM, Chromium, Chrome i Firefox szybko pochłoną setki megabajtów, a nawet wiele gigabajtów pamięci RAM, gdy otworzymy kilka kart.

I wtedy to się dzieje! Dysk twardy zaczyna wydawać zgrzytający dźwięk. Muzyka zaczyna się zacinać. Kiedy przełączamy się na inną aplikację, potrzeba kilkudziesięciu sekund, zanim pojawi się ona na ekranie. Nawet kursor myszy może zacząć się opóźniać. To jest efekt zacinania się dysku.

Co to jest niszczenie dysku?

Najpierw musimy zrozumieć zamianę. Kiedy zabraknie nam wolnej pamięci RAM, dane aplikacji, do których system operacyjny nie miał dostępu od dłuższego czasu, zostaną przeniesione do obszaru wymiany. Często odbywa się to na fizycznym urządzeniu pamięci masowej. W ten sposób system operacyjny może zwolnić część pamięci, której obecnie potrzebuje program. W ten sposób zakładka w naszej przeglądarce, do której nie wchodziliśmy w ciągu ostatniej godziny, może zostać przeniesiona na dysk twardy. Teraz można uruchomić edytor obrazów GIMP. Kiedy ją zamkniemy i wrócimy do starej karty, system operacyjny zamieni ją z powrotem w pamięć (odczyta ją z dysku i skopiuje z powrotem do pamięci o dostępie swobodnym).

Mechanizm ten sprawdza się dobrze przy wymianie małych ilości danych. Ale gdy, powiedzmy, dostępne jest tylko 2 GB pamięci RAM, a wszystkie otwarte programy potrzebują 4 GB, system operacyjny musi się ciągle zmieniać. Ciągłe przenoszenie danych z pamięci na dysk, z dysku na pamięć i z powrotem jest bardzo powolne, szczególnie w przypadku dysków twardych. W takiej sytuacji urządzenie magazynujące nie jest w stanie wystarczająco szybko realizować żądań. Krótko mówiąc, gdy następuje awaria dysku, wszystko dzieje się bardzo powoli.

Dyski SSD świetnie nadają się do wymiany

W Internecie wciąż krąży mit: „Nigdy nie konfiguruj wymiany na dysku SSD. To zniszczy Twoje urządzenie!” To było prawdą kilka lat temu, ale teraz już nie. W rzeczywistości skonfigurowanie wymiany na dysku SSD prowadzi do świetnych wyników. Jeśli w komputerze znajduje się dysk SSD charakteryzujący się dobrą wydajnością losowego odczytu/zapisu (co najmniej 300 MB), utwórz na nim partycję wymiany i zignoruj resztę tego artykułu. Gdy system operacyjny będzie musiał zamienić 1 GB danych, zajmie to mniej niż pięć sekund, podczas gdy na dysku twardym zajmie to ponad minutę.

Jak znacznie zmniejszyć awarie dysku w systemie Linux

Na szczęście większość danych przechowywanych w pamięci RAM jest bardzo skompresowana. Oznacza to, że jeśli weźmiemy 200MB danych przechowywanych w pamięci i skompresujemy je, możemy zmniejszyć ich rozmiar do 100MB. W konsekwencji oznacza to, że system podczas wymiany będzie musiał zapisać na dysk znacznie mniej danych.

Wyobraź sobie, że zamiast czekać trzydzieści sekund na przełączenie się na program, musisz poczekać piętnaście. To wyraźna poprawa. Ale w rzeczywistości przyspieszenie jest znacznie większe (może trzeba poczekać mniej niż dziesięć sekund), ponieważ narzędzie, którego będziemy używać, jest bardziej wyrafinowane. Inteligentnie wysyła na dysk tylko te fragmenty, których nie można skompresować, pozostawiając resztę w zarezerwowanej części pamięci. Jeśli chcesz przeczytać więcej na temat jego elementów wewnętrznych, sprawdź oficjalną stronę jądra Linuksa na temat zswap.

Prosta wersja korzyści, jakie uzyskujemy dzięki zastosowaniu zswap, polega na tym, że zamiast strasznych spowolnień, gdy zabraknie nam pamięci, otrzymujemy znośne, łagodne spowolnienia, które trwają sekundy, a nie dziesiątki sekund lub nawet minut.

Jak włączyć zswap w dystrybucjach opartych na Debianie (Ubuntu, Linux Mint itp.)

Otwórz aplikację terminalową i uruchom to polecenie, aby edytować plik konfiguracyjny szablonu programu ładującego Grub:

sudoedit /etc/default/grub

Za pomocą klawiszy kursora przejdź do wiersza rozpoczynającego się od „GRUB_CMDLINE_LINUX_DEFAULT”. W cudzysłowie dodaj następujący tekst:

zswap.enabled=1

Na przykład wiersz GRUB_CMDLINE_LINUX_DEFAULT="cichy plusk" zmieni się na GRUB_CMDLINE_LINUX_DEFAULT="cichy plusk zswap.enabled=1".

Aby zapisać plik, naciśnij Ctrl + X, następnie „y”, a następnie Enter.

Wygeneruj nowe pliki konfiguracyjne Gruba zgodnie z szablonem, który wcześniej edytowaliśmy:

sudo update-grub

Uruchom ponownie, a moduł zswap zostanie włączony automatycznie.

Jak włączyć zswap w Fedorze i OpenSUSE

Procedura jest podobna do tej z poprzedniej sekcji, ale z kilkoma zmianami. Edytuj plik konfiguracyjny szablonu Gruba.

sudoedit /etc/default/grub

Dodaj zswap.enabled=1 w cudzysłowie, w wierszu rozpoczynającym się od GRUB_CMDLINE_LINUX.

Naciśnij Ctrl + X, następnie „y”, a następnie Enter, aby zapisać plik.

W zależności od tego, czy komputer uruchamia się z systemu BIOS, czy UEFI, plik konfiguracyjny Gruba jest generowany w innej ścieżce. Aby dowiedzieć się, gdzie aktualnie się znajduje, wpisz następujące polecenie:

sudo find /boot/ -name grub.cfg

Użyj ścieżki podanej tutaj w następnym poleceniu. Na przykład w naszym przypadku znaleziona ścieżka to „/boot/grub2/grub.cfg”, więc dodamy ją na końcu następnego polecenia po „-o”:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Uruchom ponownie komputer. Po ponownym uruchomieniu sprawdź, czy moduł jest aktywny:

cat /sys/module/zswap/parameters/enabled

Jeśli wyjście ma wartość „Y”, oznacza to, że moduł działa poprawnie.

Jak włączyć zswap w Arch Linux

Zainstaluj pakiet systemd-swap:

sudo pacman -Sy systemd-swap

Spraw, aby ten pakiet działał magicznie podczas uruchamiania:

sudo systemctl enable systemd-swap

Uruchom go teraz, bez ponownego uruchamiania:

sudo systemctl start systemd-swap

Aby sprawdzić, czy wszystko działa zgodnie z oczekiwaniami, sprawdź, czy moduł zswap jest włączony:

cat /sys/module/zswap/parameters/enabled

Jeśli wyjście ma wartość „Y”, oznacza to, że moduł jest aktywny.

Jak włączyć zswap w różnych dystrybucjach

Ogólnie rzecz biorąc, włączenie zswap podczas uruchamiania systemu jest tak proste, jak dodanie zswap.enabled=1 do parametrów jądra. Większość dystrybucji domyślnie używa Grub2 jako programu ładującego. Jeśli używasz innego programu ładującego, znajdź plik konfiguracyjny, w którym przechowuje parametry jądra do przekazania podczas rozruchu i dodaj zswap.enabled=1 jako dodatkowy parametr.

Innym parametrem, z którym możesz się pobawić, aby sprawdzić, czy poprawia on wydajność w konkretnym przypadku użycia, jest zswap.max_pool_percent=20. Możesz to dostosować, zmieniając liczbę na końcu: na przykład zswap.max_pool_percent=50.

Dodaj go do tych samych parametrów jądra, do których dodajesz zswap.enabled=1. Zaleca się, aby nie przekraczać wartości powyżej 50%, ponieważ większa wartość może mieć szkodliwy wpływ na systemy z małą ilością pamięci RAM.

Wniosek

Jeśli często brakowało Ci pamięci RAM w starym systemie i doświadczałeś irytujących skutków zawieszania się dysku, od teraz natychmiast zauważysz i docenisz różnicę. Zamiast strasznych spowolnień, odczujesz łagodne, tymczasowe opóźnienie, które będzie trwało kilka sekund (zamiast minut), gdy system operacyjny będzie musiał przenieść dużą ilość danych na dysk. Będziesz mógł kontynuować pracę w sytuacjach, w których wcześniej w czasie jego wymiany nie można było w ogóle korzystać z komputera.

Powiązane artykuły