W tym samouczku nauczymy się, jak wyczyścić pamięć podręczną RAM w systemie Linux i wyczyścić przestrzeń wymiany.
Podobnie jak wszystkie inne systemy operacyjne, GNU/Linux również posiada zaimplementowany system zarządzania pamięcią. Chociaż zarządzanie pamięcią w Linuksie jest znacznie wydajne, a nawet częściej używane niż w innych systemach operacyjnych. Jednakże w niektórych przypadkach, gdy chcesz kontrolować zarządzanie pamięcią lub jeśli jeden lub więcej procesów pochłania pamięć RAM twojego systemu. W takim przypadku chcemy to zatrzymać; Linuksa zapewnia kilka sposobów opróżnienia (wyczyszczenie pamięci podręcznej pamięci RAM).
Jak wyczyścić pamięć podręczną w systemie Linux?
Prawie w każdym systemie Linux dostępne są trzy metody czyszczenia pamięci podręcznej. Niektóre z nich można wykorzystać w niezwykły sposób, bez zakłócania bieżących procesów lub usług. Trzy sposoby są następujące:
- Wyczyść tylko PageCache
- Wyczyść zęby i i-węzły
- Wyczyść zęby i i-węzły, Wyczyść PageCache
Omówimy szczegółowo wszystkie trzy metody i zobaczymy ich praktyczne wdrożenie:
1. Wyczyść tylko PageCache-
Ta metoda jest jednym z najbezpieczniejszych sposobów czyszczenia pamięci podręcznej systemu Linux, ponieważ może wyczyścić pamięć podręczną bez przerywania jakichkolwiek bieżących operacji, aplikacji i usług. Mówi się, że jest to najbezpieczniejszy sposób czyszczenia pamięci podręcznej, ponieważ można go wykorzystać w środowisku produkcyjnym i czyści tylko PageCache. W tej metodzie wykorzystywane są następujące polecenia:
Komenda
# sync ; echo 1 > proc/sys/vm/drop_caches
Wyjaśnienie:
W powyższym poleceniu opcja „ synchronizacja ' służy do opróżniania bufora systemu plików, a polecenie jest oddzielane za pomocą ' ; 'wykonywane w sposób sekwencyjny.
Jednakże powłoka czeka na wykonanie lub zakończenie każdego polecenia przed rozpoczęciem wykonywania następnego polecenia dostępnego w sekwencji.
The drop_cache służą do opróżniania lub czyszczenia pamięci podręcznej bez zabijania lub wpływania na jakąkolwiek inną uruchomioną aplikację lub usługi, jak jest to również wyraźnie wspomniane w Dokumentacji jądra. „ Echo ' polecenie wykonuje zadanie zapisu do plików.
Kroki, aby wyczyścić PageCache za pomocą terminala:
Krok 1 - Otwórz terminal w systemie Linux, wpisz następujące polecenie i naciśnij Enter. Po wykonaniu polecenia wyświetli się informacja o pamięci systemu, jak pokazano w przykładzie:
Komenda
free
Powyższe polecenie służy do wyświetlania ilości używanej pamięci i wyświetlania innych czynników, takich jak całkowita dostępna pamięć, pamięć wymiany itp. Możemy użyć tego ' bezpłatny ' polecenie tuż przed i po użyciu każdej metody.
Konieczne jest użycie polecenia „free” przed i po wykonaniu właściwego polecenia, abyśmy mogli łatwo zobaczyć lub wykryć zmiany w alokacji pamięci. Zobaczmy przykład, aby zrozumieć, jak faktycznie działa cały proces:
Przykład
2. Wyczyść zęby i iwęzły-
Ta metoda służy do czyszczenia pamięci zębów i i-węzłów. Jest to podobna metoda jak pierwsza metoda, ale nieco inna, ponieważ służy do czyszczenia pamięci zębów i i-węzłów zamiast czyszczenia pamięci PageCache. Mimo to jest bardzo podobny do pierwszej metody, którą omówiliśmy powyżej. Polecenie użyte w tej metodzie podano poniżej:
Komenda
# sync ; echo 2 > proc / sys / vm / drop_caches
Zobaczmy przykład, aby zrozumieć, jak wdrożyć tę metodę:
Przykład
3. Wyczyść zęby i i-węzły, Wyczyść PageCache
Jest to jedna z najskuteczniejszych metod. Niemniej jednak tradycyjnie nie zaleca się jego stosowania, dopóki nie wiesz, co robisz, ponieważ nie jest uważany za najbezpieczniejszy w użyciu, szczególnie w produkcji. Polecenie użyte w tej metodzie wykorzystuje „echo 3 >”, które czyści PageCache, dentry i i-węzły w tym samym czasie.
Komenda:
# sync ; echo 3 > / porc / sys / vm / drop_caches
Aby lepiej zrozumieć, jak to faktycznie działa, rozważ podany przykład:
Przykład:
Uwaga: nie zaleca się używania go w środowisku produkcyjnym, chyba że wiesz, co robisz, ponieważ natychmiast wyczyści PageCache i Dentry, a także i-węzły, jak już omówiliśmy powyżej.
Zamień miejsce
Ogólnie rzecz biorąc, przestrzeń wymiany jest używana, gdy wykorzystanie pamięci fizycznej jest prawie maksymalne. Zatem kiedy i jeśli system potrzebuje więcej zasobów pamięci, a fizyczna pamięć RAM zostanie zapełniona, wszystkie nieaktywne strony zostaną przeniesione do obszaru pamięci wymiany.
Jednak przestrzeń pamięci wymiany pomaga również systemowi jako niewielka, ale efektywna ilość pamięci RAM. Mimo to niewątpliwie nie zaleca się traktowania przestrzeni wymiany jako fizycznego barana.
Jak wyczyścić przestrzeń wymiany w systemie Linux?
Aby wyczyścić pamięć wymiany w systemie, wystarczy wyłączyć funkcję Swap. Spowoduje to przeniesienie wszystkich danych z pamięci wymiany z powrotem do pamięci RAM. Oznacza to również, że musisz mieć pewność, że w systemie masz wystarczającą ilość pamięci RAM, aby obsłużyć tę operację.
Można to łatwo zrobić, uruchamiając plik „wolne-m” polecenie, aby zobaczyć, co jest używane w zamianie, pamięci RAM, a następnie wyłącz zamianę.
Po wyłączeniu należy odczekać 30 sekund lub dłużej, aby umożliwić zakończenie operacji, a następnie ponownie włączyć zamianę. Spowoduje to wyczyszczenie pamięci podręcznej wymiany i ponowne jej włączenie, ale przed wyczyszczeniem zamiany powinieneś zobaczyć bieżące (lub domyślne) ustawienia systemu.
Aby zobaczyć bieżące ustawienie wymiany systemu, wystarczy otworzyć terminal i użyć następującego polecenia, jak pokazano na wyjściu:
cat /proc/sys/vm/swappiness
Wyjście
Jak widać, bieżąca wartość Zmienności w naszym systemie wynosi „60” sekund. Jeśli jednak chcesz ją zmienić, możesz ustawić ją w dowolnym miejscu pomiędzy 0 a 100. Proces edycji (aktualizacji) tej wartości jest dość prosty. Wszystko, musisz wpisać następujące polecenie w terminalu i nacisnąć Enter:
Komenda:
sudo sysctl vm.swappiness=x
(Tutaj x jest wartością wymiany, którą chcemy ustawić)
Jak widać na powyższym wyjściu, bieżąca wartość wymiany w naszym systemie (lub wartość domyślna) wynosi 60. Spróbujmy zmienić wartość wymiany na 40.
1. Otwórz terminal, naciskając Ctrl+Alt+T na klawiaturze.
2. Po otwarciu terminala wpisz następujące polecenie i naciśnij klawisz Enter, jak pokazano na obrazku poniżej:
sudo sysctl vm.swappiness=40
Wyjście
Uwaga: może zostać wyświetlony monit o wprowadzenie hasła, ponieważ będziemy musieli uruchomić to polecenie z uprawnieniami superUser (użytkownik root).
Weryfikacja
Aby sprawdzić, czy wartość wymiany została pomyślnie zaktualizowana, wpisz następujące polecenie i naciśnij przycisk Enter:
cat /proc/sys/vm/swappiness
Wyjście
Jak widać na wynikach, pomyślnie zaktualizowaliśmy wartość wymiany do 40.
Wyczyść przestrzeń wymiany
Aby wyczyścić przestrzeń wymiany, proces jest dość prosty, ponieważ po prostu musimy wyłącz cykl zamiana, dzięki której wszystkie dane lub nieaktywne strony są przenoszone z powrotem do pamięci RAM z przestrzeni pamięci wymiany. Po wyłączeniu obszaru wymiany należy odczekać 30 sekund i ponownie uruchomić komputer lub ponownie włączyć przestrzeń wymiany.
Przydatne polecenia:
Oto kilka podstawowych poleceń, które pomogą nam w czyszczeniu przestrzeni wymiany:
Kroki, aby wyczyścić pamięć wymiany
Zobaczmy, jak używać tych poleceń do czyszczenia przestrzeni wymiany lub pamięci:
Krok 1. Otwórz terminal, naciskając przycisk „ Ctrl+Alt+ T 'na klawiaturze.
sprint do int
Krok 2. Po otwarciu terminala wpisz „ sudo -tj 'polecenie, ponieważ możemy tego potrzebować uprawnienia superużytkownika aby uruchomić podane powyżej polecenia:
Krok 3. Wpisz polecenie „free -m”, aby wyświetlić wcześniejsze wykorzystanie pamięci wyłącz cykl the Zamieniać :
Krok 4 Teraz wpisz „ Zamiana -a ' i naciśnij klawisz Enter, aby wyłączyć funkcję Zamień, jak pokazano poniżej:
Krok 5. Po wyłącz cykl , Zamiana czeka co najmniej 40 sekund.
Krok 6. Teraz wpisz „swap-a” i naciśnij Enter, aby ponownie włączyć Zamień. Aby zobaczyć różnicę (lub zmianę) w zużyciu pamięci, uruchom jeszcze raz polecenie „free-m”, jak pokazano poniżej:
Mamy nadzieję, że pomoże to wyczyścić pamięć wymiany systemu, jeśli kiedykolwiek znajdziesz się w takiej sytuacji.