Powrót do bloga

Dodawanie przestrzeni swap w Ubuntu 20.04: Poradnik

Dodawanie przestrzeni swap w Ubuntu 20.04: Poradnik

Dodanie przestrzeni wymiany (swap) do serwera to doskonały sposób na skompensowanie błędów braku pamięci. Linux pozwala użytkownikom dodać przestrzeń wymiany w systemie, gdy pamięć RAM jest w pełni wykorzystana. Tworząc dedykowaną partycję, umożliwiasz płynne działanie pamięci fizycznej bez martwienia się o brak miejsca na dysku.

Przegląd pamięci Swap

Przestrzeń swap w systemie Linux to część pamięci wirtualnej używanej, gdy kończy się miejsce w pamięci fizycznej. Szczególnie podczas pracy z dużym programem lub aplikacją, gdy pojawia się zapotrzebowanie na dodatkową pamięć, przestrzeń swap jest idealnym wyborem do tymczasowego przechowywania nieaktywnych stron pamięci. Utworzenie przestrzeni swap pozwala użytkownikom na przechowywanie danych podczas działania dużych programów, co zmniejsza liczbę awarii aplikacji. Oznacza to, że jeśli system potrzebuje więcej zasobów pamięci, a pamięć RAM jest pełna, wszystkie nieaktywne strony w pamięci są przenoszone do przestrzeni swap, a programy mogą działać bez zakłóceń.

Jakiej ilości pamięci Swap potrzebuję?

Ilość przestrzeni swap zależy od kilku czynników. Należą do nich dostępna pamięć RAM, obciążenie systemu oraz to, czy system musi obsługiwać funkcję hibernacji (suspend-to-disk). Zapoznaj się z poniższą tabelą, aby sprawdzić zalecaną przestrzeń swap na podstawie dostępnej pamięci RAM:

Lp.

Dostępna pamięć RAM

Zalecana przestrzeń Swap

1.

1GB

1GB

2.

2GB

1GB

3.

3GB

2GB

4.

4GB

2GB

5.

5GB

2GB

6.

6GB

2GB

7.

8GB

3GB

W tym poradniku przeprowadzimy Cię przez kroki dodawania przestrzeni swap w systemie Ubuntu 20.04. Zaczynajmy!

Wymagania wstępne

Aby przejść przez ten poradnik, będziesz potrzebować:

Krok 1: Sprawdzenie informacji o pamięci Swap

Rozmiar przestrzeni swap zależy od pamięci RAM systemu. Dlatego przed jej utworzeniem należy koniecznie sprawdzić dostępność przestrzeni swap w systemie. Wpisz poniższe polecenie, aby sprawdzić, czy system ma skonfigurowaną pamięć swap:

Swap Space image 1

Wyświetlenie danych wyjściowych oznacza, że w systemie jest dostępne miejsce na utworzenie przestrzeni swap. Brak danych wyjściowych to sygnał, że nie ma wystarczającej ilości wolnego miejsca na dodanie przestrzeni swap.

Użyj narzędzia free, aby upewnić się, że nie ma aktywnej pamięci swap:

Zobaczysz dane wyjściowe z pustym wierszem swap:

Swap Space image 2

Krok 2: Sprawdzenie dostępności partycji dysku twardego

Podobnie jak w przypadku sprawdzania dostępności systemu, sprawdźmy teraz aktualne użycie dysku, aby upewnić się, że mamy wystarczająco dużo miejsca. Użyj polecenia df, aby sprawdzić dostępność partycji dysku twardego:

Urządzenie z / w kolumnie Mounted on to nasz dysk, który ma 11% wolnego miejsca. Zobaczysz dane wyjściowe:

Swap Space image 3

Po sprawdzeniu wymagań systemowych przejdźmy dalej i utwórzmy plik swap w naszym systemie plików.

Step 3: Create a Swap File

Aby utworzyć plik swap w naszym systemie plików, przydziel nazwę pliku jako swapfile w katalogu głównym (/) za pomocą programu fallocate. Przydzielenie rozmiaru pliku zależy od Twoich potrzeb. Aby poradnik był prosty i łatwy do zrozumienia, tworzymy plik o rozmiarze 1G i przeznaczamy 1G pamięci RAM. Użyj polecenia sudo aby utworzyć plik swap:

Następnie wpisz to polecenie, aby zweryfikować zarezerwowane miejsce:

Zobaczysz dane wyjściowe:Swap Space image 3

Skoro utworzyliśmy już przestrzeń swap w naszym systemie, w następnym kroku ją włączmy.

Krok 4: Włączenie pliku Swap

Gdy mamy już odpowiedni rozmiar, przekształćmy go w przestrzeń swap. Ze względów bezpieczeństwa kluczowe jest, aby nasz plik był dostępny dla użytkowników root i zabezpieczony przed dostępem zwykłych użytkowników. Dodamy ograniczenia, aby użytkownicy z uprawnieniami root mogli przeglądać plik i czytać jego zawartość. Użyj następującego polecenia root, aby plik był dostępny wyłącznie dla użytkowników root :

Następnie użyj polecenia ls, aby zweryfikować zmiany:

Jak widać, tylko użytkownik root ma włączone flagi odczytu i zapisu:

Swap Space image 4

Następnie oznacz plik jako przestrzeń swap:

Zobaczysz dane wyjściowe:

Swap Space image 5

Następnie włącz plik swap i zezwól naszemu systemowi na rozpoczęcie korzystania z niego:

Następnie zweryfikuj dostępność przestrzeni swap:

Zobaczysz następujący wynik:

Swap Space image 6

Tak jak zrobiliśmy to w Kroku 1, sprawdzimy ponownie przestrzeń narzędzia free jeszcze raz:

Zobaczysz następujący wynik:

Swap Space image 7

Nasza przestrzeń swap została pomyślnie skonfigurowana i nasz system operacyjny zacznie z niej korzystać w razie potrzeby. W następnym kroku sprawimy, że plik swap będzie trwały.

Krok 5: Uczynienie pliku swap trwałym

Domyślnie serwer nie zachowa automatycznie ustawień swap po ponownym uruchomieniu. Aby zmienić domyślne ustawienia i postępować bezpiecznie, dodamy plik swap do naszego pliku /etc/fstab. Użyj polecenia sudo, aby utworzyć kopię zapasową pliku /etc/fstab:

Następnie dodaj informacje o pliku swap na końcu swojego pliku /etc/fstab, wpisując:

Następnie przeanalizujmy niektóre ustawienia i wprowadźmy modyfikacje, aby dostroić naszą przestrzeń swap.

Krok 6: Modyfikacja ustawień swap

W tym kroku skonfigurujemy ustawienia i wprowadzimy pewne modyfikacje. Dostosujmy właściwość swappiness i zmieńmy nacisk na pamięć podręczną.

  • Dostosowanie właściwości Swappiness

Parametr swappiness jest konfigurowalnym parametrem jądra. Zmienia on równowagę między przenoszeniem pamięci operacyjnej do przestrzeni wymiany a wymianą danych z pamięci RAM do przestrzeni swap. Ta wartość parametryczna jest wyrażona w procentach, w zakresie od 0 do 100.

Wartość vm.swappiness ma bezpośredni wpływ na zachowanie swappiness systemu. Im wyższa wartość vm.swappiness, tym częściej system będzie korzystał ze swapu i na odwrót. Jeśli wartość jest bliska zeru, jądro nie będzie przenosić danych do pamięci wymiany, co może prowadzić do spadku wydajności. Pozwolenie systemowi na mniejsze poleganie na swapie to doskonały sposób na zwiększenie jego wydajności i uzyskanie szybkiej reakcji.

Alternatywnie, wartość vm.swappiness zbliżona do 100 próbuje umieścić więcej danych w swapie, a mniej w pamięci fizycznej. W przeciwieństwie do niskiej lub średniej wartości vm.swappiness, intensywne korzystanie ze swapu przez system ma bardzo niepożądane skutki, gdy duże ilości danych są aktywnie przenoszone do i z pamięci RAM.

Sprawdź aktualną wartość swappiness, wpisując:

Zobaczysz następujący wynik:

Swap Space image 8

Możesz również ustawić wybraną wartość swappiness za pomocą polecenia sysctl. Ustawmy wartość swappiness na 15, wpisując:

Zobaczysz następujący wynik:

output

Dopóki system nie zostanie uruchomiony ponownie, ustawienia pozostaną bez zmian. Dodaj linię do naszego pliku /etc/sysctl.conf , aby wartość była ustawiana automatycznie przy ponownym uruchomieniu:

Możesz dodać następujący kod na samym dole:

code

Następnie zapisz i zamknij plik.

  • Dostosowanie parametru Cache Pressure

Następnie zmodyfikujemy vfs_cache_pressure, co wpłynie na zachowanie informacji o inode oraz dentry w stosunku do innych danych. Te vfs_cache_pressure ustawienia również kontrolują skłonność jądra do odzyskiwania pamięci używanej do buforowania katalogów. Przejdź ponownie do systemu plików proc , aby sprawdzić aktualną wartość:

Zobaczysz następujący wynik:

output 2

Ponieważ konfiguracja została już zakończona, nasz system będzie usuwał informacje o i-węzłach (inode) z pamięci podręcznej. Ustawmy sysctl vm.vfs_cache_pressure na bardziej stabilną wartość, w ten sposób:

Zobaczysz następujący wynik:

Swap Space image 9

Podobnie jak w przypadku ustawienia swappiness, tutaj również możemy zmienić konfigurację:

Na samym dole wstaw linię wskazującą nową utworzoną wartość:

Swap Space image 10

Na koniec zapisz i zamknij plik.

Podsumowanie

Możesz dodać przestrzeń wymiany jako dedykowaną partycję swap, plik swap lub kombinację obu. Możesz utworzyć przestrzeń wymiany i czerpać korzyści z jej używania, aby bezproblemowo uruchamiać aplikacje bez martwienia się o ostrzeżenia o braku pamięci (out-of-memory). Chociaż utworzenie przestrzeni wymiany jest dodatkową zaletą w systemach z ograniczoną ilością pamięci, nie należy jej traktować jako alternatywy dla większej ilości pamięci RAM. Pamiętaj, że przestrzeń wymiany znajduje się na dysku twardym, dlatego możesz doświadczyć nieco dłuższego czasu dostępu w porównaniu z pamięcią fizyczną.

Oto więcej poradników na naszym blogu, które pomogą Ci rozpocząć pracę z serwerami Ubuntu:

Miłego korzystania!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.