Wyszukiwanie w witrynie

Jak wyczyścić pamięć podręczną pamięci RAM, bufor i zamianę w systemie Linux


Jak każdy inny system operacyjny, GNU/Linux wdrożył efektywne zarządzanie pamięcią, a nawet więcej. Jeśli jednak jakiś proces pożera twoją pamięć i chcesz ją wyczyścić, Linux zapewnia sposób opróżnienia lub wyczyszczenia pamięci podręcznej RAM.

W tym artykule zbadamy, jak wyczyścić pamięć podręczną pamięci RAM, bufor i przestrzeń wymiany w systemie Linux, aby zwiększyć ogólną wydajność.

Zrozumienie pamięci podręcznej RAM, bufora i przestrzeni wymiany

Przyjrzyjmy się pamięci podręcznej RAM, buforowi i przestrzeni wymiany w systemie Linux.

Pamięć podręczna RAM

Pamięć podręczna RAM to mechanizm używany przez jądro do przechowywania regularnie używanych danych. Chociaż zwiększa to responsywność systemu, przeciążona pamięć podręczna może prowadzić do przechowywania przestarzałych danych, co wpływa na wydajność.

Bufor

Podobnie jak cache, bufor przechowuje dane tymczasowo, ale różni się przeznaczeniem. Bufory przechowują dane przesyłane pomiędzy komponentami, takimi jak procesor i dysk twardy, ułatwiając płynną komunikację. Jednak nadmiar buforowanych danych może zmniejszyć szybkość systemu.

Zamień przestrzeń

Przestrzeń wymiany to przydzielony obszar na dysku twardym, który działa jak pamięć wirtualna w przypadku wyczerpania się fizycznej pamięci RAM. Chociaż zapobiega awariom systemu z powodu małej ilości pamięci, może spowolnić system, jeśli jest nadużywany.

Czyszczenie pamięci podręcznej, bufora i przestrzeni wymiany w systemie Linux

W niektórych sytuacjach może być konieczne wyczyszczenie pamięci podręcznej, buforu lub zamiany miejsca, jak wyjaśniono poniżej.

Jak wyczyścić pamięć podręczną pamięci RAM w systemie Linux?

Każdy system Linux ma trzy opcje czyszczenia pamięci podręcznej bez zakłócania jakichkolwiek procesów lub usług.

Czyszczenie pamięci podręcznej PageCache

1. Aby wyczyścić tylko PageCache, możesz użyć następującego polecenia, które w szczególności wyczyści PageCache, pomagając zwolnić zasoby pamięci.

sudo sync; echo 1 > /proc/sys/vm/drop_caches

Czyszczenie zębów i i-węzłów

2. Aby wyczyścić tylko dentries i i-węzły, możesz użyć następującego polecenia, które zsynchronizuje system plików i wyczyści zarówno dentry, jak i i-węzły, poprawianie wydajności systemu poprzez uwalnianie buforowanych informacji o katalogach i i-węzłach.

sudo sync; echo 2 > /proc/sys/vm/drop_caches

Czyszczenie PageCache, Dentry i i-węzłów

3. Aby wyczyścić pamięć podręczną, dentries i i-węzły, możesz użyć następującego polecenia, które spowoduje synchronizację system plików i wyczyść pamięć podręczną strony, dentry i i-węzły, pomagając zwolnić pamięć i poprawić wydajność systemu.

sudo sync; echo 3 > /proc/sys/vm/drop_caches 

Oto wyjaśnienie każdej części powyższego polecenia:

  • Do wykonania polecenia jako superużytkownik służy polecenie sudo.
  • sync opróżni bufor systemu plików.
  • ”; ” średnik służy do oddzielania wielu poleceń w jednej linii.
  • Komenda echo 3 > /proc/sys/vm/drop_caches służy do usuwania pamięci podręcznej strony, tymczasowego obszaru przechowywania ostatnio otwieranych plików.

Uwaga: plik drop_caches kontroluje, jaki typ danych w pamięci podręcznej powinien zostać wyczyszczony, a wartości są następujące:

  • 1 – Czyści tylko pamięć podręczną strony.
  • 2 – Czyści zęby i i-węzły.
  • 3 – Czyści pamięć podręczną strony, elementy dentystyczne i i-węzły.

Jak wspomniano w dokumentacji jądra, zapisanie do drop_caches wyczyści pamięć podręczną bez zabijania jakiejkolwiek aplikacji/usługi, polecenie echo wykonuje zadanie zapisu do pliku.

Jeśli musisz wyczyścić pamięć podręczną dysku, pierwsze polecenie jest najbezpieczniejsze w przedsiębiorstwie i środowisku produkcyjnym jako „...echo 1 > …. ” wyczyści tylko PageCache.

Nie zaleca się używania trzeciej opcji powyżej „...echo 3 > ” w środowisku produkcyjnym, dopóki nie wiesz, co robisz, ponieważ wyczyści to pamięć podręczną, zęby i i-węzły.

Jak wyczyścić przestrzeń wymiany w systemie Linux?

Aby wyczyścić przestrzeń wymiany, możesz użyć polecenia swapoff z opcją -a, co spowoduje wyłączenie wszystkich partycji wymiany.

sudo swapoff -a

Następnie przywróć go, uruchamiając następujące polecenie, które aktywuje wszystkie partycje wymiany.

sudo swapon -a

Czy wskazane jest bezpłatne buforowanie, pamięć podręczna i zamiana w systemie Linux?

Ogólnie rzecz biorąc, nie jest dobrym pomysłem ręczne zwalnianie buforu i pamięci podręcznej w systemie Linux, które mogą być używane przez jądro Linuksa, które ma na celu efektywne zarządzanie tymi zasobami, a ręczne ich usunięcie może zakłócić działanie systemu.

Mogą jednak zaistnieć rzadkie sytuacje, w których konieczne będzie wyczyszczenie buforu i pamięci podręcznej, np. gdy wystąpi duże obciążenie pamięci i nie będzie można zwolnić pamięci w inny sposób. W takich przypadkach należy postępować ostrożnie i mieć świadomość potencjalnego wpływu na wydajność.

Podobnie czyszczenie przestrzeni wymiany w systemie Linux nie jest rutynową ani zalecaną praktyką w normalnych okolicznościach.

Automatyczna optymalizacja pamięci

Aby zautomatyzować proces i regularnie czyścić pamięć, możesz skonfigurować zadanie cron, które będzie uruchamiało polecenia w określonych odstępach czasu.

Otwórz konfigurację crontab.

crontab -e

Dodaj następujące wiersze, aby codziennie o północy wyczyścić pamięć podręczną, bufor i przestrzeń wymiany:

0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches
0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches
0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches
0 0 * * * sudo swapoff -a && sudo swapon -a

Aby uzyskać dodatkowe informacje na temat planowania zadań za pomocą cron, możesz zapoznać się z naszym artykułem zatytułowanym „11 zadań planowania Cron”.

Czy wskazane jest wyczyszczenie pamięci podręcznej RAM na serwerze produkcyjnym z systemem Linux?

Nie, nie jest. Rozważmy scenariusz, w którym zaplanowano skrypt czyszczący pamięć podręczną RAM codziennie o 2 w nocy. Każdego dnia o 2 w nocy wykonywany jest skrypt, który opróżnia pamięć podręczną RAM. Jednak pewnego dnia nieoczekiwanie duża liczba użytkowników jest online w Twojej witrynie, co powoduje znaczne obciążenie zasobów Twojego serwera.

Jednocześnie zaplanowany skrypt uruchamia się i czyści wszystko w pamięci podręcznej. Teraz wszyscy użytkownicy pobierają dane z dysku, co może prowadzić do awarii serwera i uszkodzenia bazy danych. Dlatego ważne jest, aby czyścić pamięć podręczną RAM tylko wtedy, gdy jest to konieczne, pamiętając o swoich działaniach. W przeciwnym razie ryzykujesz zostaniem administratorem systemu Cargo Cult.

Wniosek

Efektywne zarządzanie pamięcią ma kluczowe znaczenie dla płynnego działania systemu Linux. Regularne czyszczenie pamięci podręcznej, bufora i przestrzeni wymiany pamięci RAM może znacznie zwiększyć wydajność systemu. Rozumiejąc te mechanizmy i stosując dostarczone polecenia, możesz zapewnić najlepsze działanie systemu Linux.

To wszystko na teraz. Jeśli artykuł Ci się spodobał, nie zapomnij podzielić się cennymi opiniami w komentarzach. Daj nam znać, co myślisz o dobrym podejściu do czyszczenia pamięci podręcznej i bufora RAM w środowiskach produkcyjnych i korporacyjnych.